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

为什么我的毫秒倒计时不一致?

郑博
2023-03-14

由于某些原因,我的计时器不连续倒计时,它有时会回到前一秒左右。

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

共有2个答案

魏书
2023-03-14

即使您在这样的API中指定毫秒的值,默认情况下系统计时器的分辨率也只有大约/-15ms(因操作系统等而异)。

这可以更改,请参见此处:https://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/

卢骏俊
2023-03-14

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

看到这篇文章:Android CountDownTimer-刻度之间的额外毫秒延迟

 类似资料:
  • 我在代码中使用倒计时。问题是,倒计时不准确。onTick方法并不总是每秒执行一次,它可能需要几毫秒的时间。当试图基于millisUntilFinished执行某项任务时,这会成为一个问题。当我的20秒计时器超过10秒时,我正在尝试登录: 以下是相关代码: 这里出现了一个问题,因为countDownTimer可能永远不会有millisUntilFinished==10000,它可能等于1001,因此

  • 本文向大家介绍多个js毫秒倒计时同时进行效果,包括了多个js毫秒倒计时同时进行效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲解js毫秒倒计时同时进行效果的代码,分享给大家供大家参考,具体内容如下 实现功能:调用一个函数,传入html元素的id,和一个截止时间(unix时间戳),在该html元素中打印出到当前到截止时间为止的倒计时,精确到毫秒; 效果图如下: 如何使用这个函数? addTi

  • 问题内容: 因此,我刚刚发现MySQL中最令人沮丧的错误。 显然,该字段及其支持功能不支持比秒更高的精度! 所以我正在使用PHP和Doctrine,我真的需要那些微秒(我正在使用属性)。 我发现我可以使用一个字段来存储值。但是学说会增加毫秒吗?我认为它只是将NOW()分配给该字段。我还担心通过代码散布的日期操作功能(在SQL中)会中断。 我还看到了有关编译UDF扩展的内容。这是不可接受的,因为我或

  • 我有一个倒计时计时器来隐藏div,然后显示另一个div。我已经按秒完成了,但我想将秒转换为分钟和小时。 我怎么能这么做? 感谢任何人回答我的问题... 这是我的代码:

  • 问题内容: 我通过传递ipAddress来对方法进行调用,它会返回ipAddress的位置,例如国家/地区,城市等。因此,我试图查看每个调用花费的时间。因此,我在调用方法之前设置了start_time,在调用之后设置了end_time。 所以有时候我得到的差为0 。并且resp包含有效的响应。 因此,这意味着有时需要0毫秒才能恢复响应。任何建议将不胜感激。 问题答案: 试试这个

  • 本文向大家介绍基于javascript实现精确到毫秒的倒计时限时抢购,包括了基于javascript实现精确到毫秒的倒计时限时抢购的使用技巧和注意事项,需要的朋友参考一下 这篇文章为大家分享了javascript实现倒计时限时抢购,精确到毫秒的倒计时,供大家参考,具体内容如下 一、效果图 下面的图片就是聚划算上面的限时抢的效果 二、实现限时抢的效果需要用到的知识 :Javascript Date(