[英]Android Java Timer()
由于其准确性,我使用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
}
};
计时器启动后,仅在60秒后调用一次run()。 有时,我必须取消计时器以更新延迟(替换“ 60000”值)。 要再次启动计时器,我只需通过使用新的延迟值再次调用WFT()来重新创建计时器。
问题是,当我使用以下方法取消计时器时:
WFT.cancel();
WFT.purge();
计时器无法启动。 run()在应该执行的时候不执行。 所以我的问题是我要使用cancel()和purge()还是只使用cancel()?
谢谢
从 purge()
的Java API中 :
大多数程序将不需要调用此方法。 它设计用于少数应用程序,该应用程序可取消大量任务。 调用此方法会以时间换取空间:该方法的运行时间可能与n + c log n成正比,其中n是队列中的任务数,而c是已取消任务的数。
所以你只需要调用cancel()
从cancel()
文档中:
不能在此计时器上安排更多任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.