我在代码中使用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}发布于 2015-11-04 22:50:52
有几种选择:
millisUntilFinished降到10000以下:
布尔printedMessage = false;而(true) { millisUntilFinished =.if (!printedMessage && millisUntilFinished < 10000) {System.out.println(“您的消息”);printedMessage = true;}https://stackoverflow.com/questions/33533364
复制相似问题