当前位置: 首页 > 知识库问答 >
问题:

CountdownTimer onTick()未被调用

陶福
2023-03-14

我正在使用一个简单的倒计时程序并每隔毫秒调用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()时它都会得到1。有精度误差吗?

共有3个答案

孙化
2023-03-14

使用处理器。试试这个:

final Handler handler = new Handler();
    final Runnable countDownTimer = new Runnable() {
        @Override
        public void run() {
            handler.postDelayed(this, 1);
        }
    };

    handler.postDelayed(countDownTimer, 0);

首先,将立即调用处理程序。在那之后,它每毫秒被调用一次。

时向文
2023-03-14

请尝试使用以下代码:

Timer timer = new Timer();

TimerTask timerTask = new TimerTask() {
    @Override
    public void run() {
        new Handler().post(new Runnable() {
            @Override
            public void run() {
                // To-do
            }
        });
    }
};

timer.schedule(timerTask, 1000, 1000);
戎桐
2023-03-14

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

Handler timer = new Handler();
timer.postDelayed(new TimerTask() {
    @Override
        public void run() {
            // Make something
        }
    }, 1000);
 类似资料:
  • 问题内容: 我有一个非常简单的Servlet和一个非常简单的HttpSessionListener: 我的方法从未被调用(没有日志输出),最终我在调用getSession()的那一行上得到一个 我尝试拨打电话时也没有问题,但存在相同的问题。 我不明白- 注释不足以调用我的侦听器吗?Eclipse甚至在下方将其显示为侦听器。 问题答案: 原来这是愚蠢的Eclipse问题之一… Project-> C

  • 我的从未被调用,即使我在inapp对话框中单击立即购买,logcat也不会打印任何内容。

  • 我是写测试和使用Mockito的新手。我在Stackoverflow上阅读了类似的主题,并做了建议的更改,确保所考虑的类/接口/方法是开放的。 我试图跟踪这个 模仿构造函数注入的依赖项 这是我目前想出来的测试 但我一直得到的回应是 即使我在测试中没有提到这种方法,我也得到了这种反应。这是我的演示者注册方法。我已经改变了类/接口 同样地 这里是接口 感谢您的帮助。

  • 问题:为什么从不调用? 我在xml配置中扩展了,如 MyEntityManagerFactoryBean MyInterceptor: 更新:[解释为什么自定义脏政策看起来不像我的方式] 我希望每次更改实体中的内容时更新时间戳,但除外。同时,应该是持久的,而不是暂时的(意味着导致实体变脏)。 由于我使用Spring事务和Hibernate模板,有一些细微差别: 1) 我无法在每个setter的末尾

  • 我试图在jpa实体上使用@Consumed和camel。 这是我的路线: 我的实体: 我确实获得了来自db的结果的incomingFileHandler bean,但我没有获得消费方法updateMstatus。incomingFileHandler bean被连续调用,因为总是有来自db的结果

  • 我正在尝试使用SpringKafka将kafka与我的SpringBoot(v2.0.6版本)应用程序集成。现在我想要一个消费者和一个生产者。我让制作人工作得很好,我可以看到通过控制台消费者发送到主题的消息。我无法使用消费者代码,当Kafka主题中出现新消息时,它不会被调用。 这是我的Kafka配置类: 以下是我的pom依赖项: 以及消费者代码: 我正在我的计算机上运行kafka,正如我所说的——