2013-02-11 397 views
0

我在我的程序(Timer類)中使用方法scheduleAtFixedRate。它每秒運行一次,但有時這種方法變得非常快(它每秒執行3-4次)。scheduleAtFixedRate快速執行

但是我做了網站的一些研究,我發現這一點:

從Android開發者的頁面複製:

隨着固定利率執行,任務的每個連續運行的開始時間定而不考慮上一次運行何時發生。如果延遲阻礙計時器按時啓動任務,這可能會導致一連串的集羣運行(一個接一個地運行)。

我需要固定計時器。它應該只運行每x次一次沒有任何快速執行。有沒有替代scheduleAtFixedRate方法,或者,我需要滿足這種方法?

回答

0

如果您的任務運行時間超過1秒,您可以嘗試使用ScheduledExecutorService而不是一個線程。

語法與Timer非常相似,但它是一個更健壯和靈活的API。

+0

是,工作。謝謝! – rootpanthera 2013-02-11 19:40:53

1

即使Timer類中的方法調度不能保證每個'x'時間段內執行一次任務,也可以考慮Timer類中的方法調度。

public void schedule(TimerTask task, Date firstTime, long period) 

至少它不會像你說的那樣重複執行。