2

我有几个计时器需要同时运行。我知道 CountDownTimer 在进入最终确定阶段 [onFinish()] 时存在问题,有时它会提前完成,但对一个相对于另一个的优缺点了解不多。直接调用 System.currentTimeMillis() 必须更轻,但 CountDownTimer 必须具有某种优势,而不仅仅是易于使用,不是吗?

例如,就像

long totalTime = 30000;
long startTime = System.currentTimeMillis();
long currTime = System.currentTimeMillis();
while(totalTime > startTime - currTime){
    currTime = System.currentTimeMillis();
}
System.out.println("Finished!");
4

1 回答 1

2

的主要优点CountDownTimer是您在倒计时期间收到的定期通知。这些通知提供了一种简单的方法来响应剩余时间,而不是主动调用System.currentTimeMillis(),这可能需要某种计时器机制。CountDownTimer代表您进行计时器设置、回调和清理。

您的示例代码将使 CPU 非常忙碌(从而消耗更多的电池寿命)而没有任何好处。如果代码在主线程上运行,它也会使应用程序的 UI 无响应。CountDownTimer另一方面,不会停止 UI,只会在通知时消耗 CPU 时间。从性能和易用性的角度来看,使用CountDownTimer是正确的选择。

于 2013-09-21T16:47:41.407 回答