android - CountdownTimer onTick() 没有被调用

标签 android countdowntimer

我正在使用一个简单的 CountDownTimer 并每毫秒调用一次 onTick():

    final int[] i = new int[1];

    CountDownTimer countDownTimer = new CountDownTimer(1000, 1) {
        @Override
        public void onTick(long millisUntilFinished) {
            Log.i("Time left", millisUntilFinished + "");
            i[0]++;
        }

        @Override
        public void onFinish() {
            Log.i("i = ", i[0] + "");
        }
    };

问题是虽然计时器在正确的时间结束,但是 onTick() 方法并不是每毫秒都被调用一次。每次都会错过几毫秒。

我使用日志检查它,发现 i[0] 的值最后是 597,而它应该是 999,因为每次 onTick( ) 被调用。是否有精度误差?

最佳答案

您可以像这样创建处理程序:

Handler timer = new Handler();
timer.postDelayed(new TimerTask() {
    @Override
        public void run() {
            // Make something
        }
    }, 1000);

关于android - CountdownTimer onTick() 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861546/

相关文章:

java - Android ListView - 当数组是本地文件时如何刷新ListView?

android - `NoClassDefFoundError: android.databinding.DataBindingUtil` 运行带有数据绑定(bind)的 fragment 的 android 测试时

Android 为 2 个或更多 Activity 传递倒数计时器的值

Android:如何让多个倒数计时器在后台工作?

android - 如何在Android中交替实现两个倒数计时器

android - Android 4.2 中的模拟位置

java - 读取谷歌个人资料图片java.io.FileNotFoundException

android - 使用 RoboGuice 在我的 Activity 中注入(inject)类

java - 当我从应用程序中按后退按钮时,倒计时器如何继续在后台运行?

javascript - 关于js/时间戳问题的倒计时