정확성 때문에 Timer()가 사용되지만 PostDelayed Handler와 동일하게 작동합니다. 한 번만 불렀습니다. 실행Android Java Timer()
public void setWFT() {
WFT = new Timer();
WFT.schedule(new TimerTask() {
@Override
public void run() {
WFTTimerMethod();
}
}, 60000); // 60 seconds delay
}
private void WFTTimerMethod() {
this.runOnUiThread(Timer_Tick);
}
private Runnable Timer_Tick = new Runnable() {
public void run() {
// My commands here
}
};
이 통화 만()를 한 번 타이머 번 60초가 시작된 후에 다음은 타이머 코드입니다. 때로는 지연을 업데이트하기 위해 타이머를 취소해야합니다 ("60000"값 대체). Timer를 다시 시작하려면 새로운 지연 값으로 WFT()를 다시 호출하여 Timer를 다시 작성하기 만하면됩니다.
WFT.cancel();
WFT.purge();
타이머가 시작되지 않습니다 내가 사용 타이머를 취소 할 때
문제이다. run()은 가정 될 때 실행되지 않습니다. 그래서 내 질문에 취소() 및 제거() 또는 그냥 취소() 사용합니까?
감사 purge()
에
또한 내 Timer()는 PostDelayed처럼 동작하며 앞으로 60 초에 한 번만 호출되므로 취소하기 전에 타이머를 취소하고 파기합니다. 그렇지 않으면 내 Timer()에 아무런 영향을 미치지 않습니다. 한 번만 처형 될 예정 이니? – KickAss
동일한 API 링크에서 :'cancel()' "현재 예약 된 작업을 버리고이 타이머를 종료합니다. (존재하는 경우) 현재 실행중인 작업을 방해하지 않습니다. 타이머가 종료되면 실행 스레드는 정상적으로 종료되고, 더 이상의 작업을 계획 할 수 없습니다. " 그러면 앞으로 예정된 모든 일정이 취소됩니다. –
오케이 :) 완벽합니다. 고맙습니다 – KickAss