핸들러를 사용하여 postDelayed()
핸들러를 사용하여 7 초 동안 타이머를 시작합니다. 이 간격 동안 서버에서 응답을 받으면 타이머를 중지합니다. 응답이 7 초 이내에 수신되지 않으면 오류가 표시됩니다. 나는 목적이전 핸들러가 중지되고 새로 시작됩니다
handler = new Handler();
Runnable wait4TO = new Runnable(){
@Override
public void run() {
if(pressedButton==INACTVE) ;
// if reply is recieved pressedbutton will be INACTIVE
else
{
sentFailed();
}
}
};
handler.postDelayed(wait4TO, 7000);
이 코드를 사용하고
이 제대로 작동하지만 다른 메시지가 전송되는 경우 나는이 시간 제한을 취소하고 새로 시작하거나 다른 7 초에 대한 기존의 제한 시간을 연장 할 수 있습니다. 어떻게 이것을 달성 할 수 있습니까?
handler.removeCallbacks(wait4TO)
및 handler.removeCallbacks(null)
을 사용하여 처리기를 취소했지만 성공하지 못했습니다. 이전 핸들러가 여전히 실행됩니다
이상합니다. 핸들러 객체의 인스턴스가 하나 뿐이겠습니까? – Blackbelt
@blackbelt 메시지를 보낼 때마다 위 코드가 호출됩니다. – dmSherazi
그래서 보내는 메시지마다 새 처리기를 만드시겠습니까? – Blackbelt