使用CountDownTimer回调率出错?

时间:2011-05-08 18:33:21

标签: java android

我一直在构建一个小的暗室计时器应用程序,因为我学习Android和java 使用CountDownTimer结束,因为它为我完成了大部分工作。 :{)
但是,我遇到了类中的错误。

我的初始结构使用onTick()回调来减少我的时间计数器,并更新剩余时间显示。如果我将其设置为例如:

            new CountDownTimer(60000, 100) {

                 public void onTick(long millisUntilFinished) {
                     mDisplayTime.setText(String.valueOf(millisUntilFinished)/1000);
                     timeTenths -= 1;
                     updateDisplay();
                 }

                 public void onFinish() {
//                   mDisplayTime.setText("Done!");
                 }
              }.start();

我的秒表在半秒内完成了超时(60秒) 但是,显示的计数在时钟上停止了3.0秒 通过试验,我在onTick()事件中发现了一致的5%“短缺” 我可以将第二个参数更改为950毫秒,但这是一个丑陋的kludge ......

最后,我更改了onTick()以显示实际的millisUntilFinished,这很好,并且也消除了我的计数器。

这是CountDownTimer()的已知问题吗?

戴夫

1 个答案:

答案 0 :(得分:0)

在致电Google之前,您是否使用LogCat进行了检查?即在您的onTick方法中,您可能希望调试millisUntilFinish为您带来的内容,而不仅仅依赖于TextView。此外,除非我不正确地理解某些内容,否则您可能必须考虑onFinish()您的最终'tick'。