由于 Timer() 的准确性,我正在使用它,但它的工作原理与 PostDelayed Handler 相同。它只被调用一次。这是定时器代码:
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
}
};
一旦 Timer 启动,这只会在 60 秒后调用 run() 一次。有时,我必须取消定时器以更新延迟(替换“60000”值)。要再次启动计时器,我只需使用新的延迟值再次调用 WFT() 来重新创建计时器。
问题是,当我使用以下方法取消计时器时:
WFT.cancel();
WFT.purge();
定时器不启动。run() 没有在它应该执行的时候执行。所以我的问题是我使用 cancel() 和 purge() 还是只使用 cancel()?
谢谢