在Blackberry中编写秒表应用程序,如何使其运行更准确

时间:2010-10-30 14:44:39

标签: blackberry stopwatch

我的应用程序具有BlackBerry秒表应用程序等功能:
显示时间的标签,每100毫秒更新一次。

我为Timer使用了一个单独的线程,它调度TimerTask来更新标签。

一切正常,但我注意到我的应用程序中的秒表运行速度比内置黑莓秒表慢一点 - 每分钟丢失1秒。 有时我的应用程序中的计时器暂停一段时间,大约300-500毫秒,原因不明。

什么可以使我的应用程序中的计时器比黑莓秒表慢? 有什么建议可以创建一个像黑莓秒表一样顺畅的秒表吗?

2 个答案:

答案 0 :(得分:3)

您应该使用System.currentTimeMillis()来计算时间。 Timer不保证何时执行 - 保证指定的时间是执行开始前的最小延迟,但没有最大值,正如您所注意到的那样。因此,使用Timer来安排UI更新,但使用System.currentTimeMillis()计算已用时间。

答案 1 :(得分:2)

我猜你不应该依赖添加时间段。 所以60秒睡眠1秒不应该被视为分钟。

而是睡了一秒钟,然后醒来检查系统时间。