我一直在构建一个小的暗室计时器应用程序,因为我学习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()的已知问题吗?
戴夫
答案 0 :(得分:0)
在致电Google之前,您是否使用LogCat进行了检查?即在您的onTick
方法中,您可能希望调试millisUntilFinish
为您带来的内容,而不仅仅依赖于TextView。此外,除非我不正确地理解某些内容,否则您可能必须考虑onFinish()
您的最终'tick'。