2010-10-30 69 views
3

我的應用程序具有類似BlackBerry Stopwatch應用程序的功能:
顯示時間的標籤,每100毫秒更新一次。在黑莓手機上編寫秒錶應用程序,如何使其運行更準確

我用一個單獨的線程爲一個計時器,它調度一個TimerTask來更新標籤。

一切工作正常,但我注意到我的應用程序中的秒錶運行速度比內置黑莓秒錶稍慢 - 每分鐘會丟失1秒。
有時,我的應用中的計時器暫停一段時間,大約300-500毫秒,原因不明。

什麼可以使我的應用程序中的計時器比黑莓秒錶更慢?
任何建議創建一個像黑莓秒錶一樣流暢的秒錶?

回答

3

您應該使用System.currentTimeMillis()來計算時間。 Timer不保證它何時執行 - 保證是指定的時間是執行開始前的最小延遲時間,但沒有最大值,正如您已經注意到的那樣。因此,使用計時器來計劃UI更新,但使用System.currentTimeMillis()計算已用時間。

+0

邁克爾,我已經使用System.currentTimeMillis()和我的秒錶現在按預期工作。感謝您寶貴的答覆。乾杯! – 2010-10-31 14:38:25

2

我想你不應該依賴添加時間段。 所以60秒的睡眠時間不應該被認爲是一分鐘。

睡覺一會兒,醒來後檢查系統時間。

+0

我想試試你的建議Grzegorz,謝謝。 – 2010-10-31 14:39:14

相關問題