gpt4 book ai didi

java - 倒数计时器? (毫秒精度)?

转载 作者:行者123 更新时间:2023-12-01 10:57:37 24 4
gpt4 key购买 nike

我在代码中使用 countDownTimer。问题是,倒计时器不准确。 onTick 方法并不总是每秒执行一次,它可能会延迟几毫秒。当尝试基于 millisUntilFinished 执行某个任务时,这会成为一个问题。我试图在 20 秒计时器过去 10 秒时进行记录:

相关代码如下:

    if (millisUntilFinished == 10000) { //TEN SECONDS

Log.v(TAG, "TEN SECONDS LEFT");
}

问题就出现在这里,因为 countDownTimer 可能永远不会 millisUntilFinished == 10000,它可能等于 1001,所以我的代码将不会执行。无论如何,有没有办法将 millisUntilFinished (很长)四舍五入到最接近的数千?我尝试过以下方法:

 millisUntilFinishedRounded = MathUtils.round((double) millisUntilFinished, -3); // nearest thousand, 2000.0

但我无法解析“MathUtils”

我迷路了。我真的很感激任何反馈(正面或负面)!非常感谢您的帮助。

{Rich}

最佳答案

有几种选择:

  1. 您可以通过添加 N/2、除以 N 并再次乘以 N,将正整数四舍五入到最接近的 N:

    ((500 + millisUntilFinished)/1000) * 1000

  2. 您可以使用一个条件来仅检查该值是否在四舍五入为 10000 的范围内:

    millisUntilFinished >= 9500 && millisUntilFinished < 10500

  3. 您可以第一次检查 millisUntilFinished 是否低于 10000:

    boolean printedMessage = false;
    while (true) {
    millisUntilFinished = ...
    if (!printedMessage && millisUntilFinished < 10000) {
    System.out.println("Your message");
    printedMessage = true;
    }
    }

关于java - 倒数计时器? (毫秒精度)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33533364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com