【发布时间】:2016-02-28 13:49:01
【问题描述】:
由于某种原因,我的计时器无法持续倒计时,有时会回到前一秒左右。
例如:如果我在 49 秒开始计时,这就是打印出来的内容:
(以毫秒为单位)
48774
47374
48909 //不一致
47063
46212
44987
48426 //不一致
46294 //不一致
44738
43636
42410
...等等
我所做的只是传递两个整数(分钟和秒)并将它们组合在一起以获得总毫秒数。
这是我的代码:
new CountDownTimer(((min * 60 + sec) * 1000), 1000) {//total time, interval
public void onTick(long millisUntilFinished) {
System.out.println(millisUntilFinished);
//...
}
}
我怎样才能让毫秒保持一致?
编辑:
我也尝试将它添加到 onTick 但它仍然不起作用
if((int)prevMill > (int)millisUntilFinished){
prevMill = millisUntilFinished;
System.out.println(prevMill);
}
【问题讨论】:
-
因为一般情况下,系统时钟的精度只有+/- 15ms。您可以四舍五入到最接近的 15,它应该是一致的。
-
但是必须有一些方法让它正确显示,我的意思是我们的手机已经有倒计时的计时器,没有任何不一致。