【发布时间】:2011-05-08 18:33:20
【问题描述】:
在学习 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 毫秒,但这是一个丑陋的组合...
最后,我将 onTick() 更改为显示实际的 millisUntilFinished,这很好,并且也消除了我的计数器。
这是 CountDownTimer() 的已知问题吗?
戴夫
【问题讨论】: