由于某些原因,我的计时器不能一直递减计数,有时会回到前一秒左右。

例如:如果我在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);
 }

最佳答案

我发现onTick()是从上一个onTick()运行的时间开始计算的,这在每个刻度上都会产生一个微小的错误。

看到这篇文章:android CountDownTimer - additional milliseconds delay between ticks

09-11 18:36