[英]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.