为什么android中的以下倒计时器总是在结束时显示00:01?

时间:2016-11-21 09:13:50

标签: android android-layout android-studio android-timer

String hms = String.format("%02d:%02d",
                    TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished)),
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)));

我真的没有得到

1)分钟 - 小时如何工作TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished))

2)为什么它始终以 00:01 结束?

3)onTick()的{​​{1}}方法如何被调用?

1 个答案:

答案 0 :(得分:1)

1)分钟 - 小时如何工作TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished))

  • 不知道你为什么这样做。你可以写

    String hms = String.format("%02d:%02d",                     TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)                     TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)));

2)为什么它总是以00:01结束?

是的,你是对的!在倒数计时器中,最后一次调用不会触发onTick()方法,它会调用下面的方法。

 public void onFinish() {
    mTextField.setText("00:00");
}

所以你可以设置" 00:00"在上面代码片段中显示的onFinish()方法中。

3)如何调用CountDowntimer的onTick()方法?

-onTick()在提供给CountDowntimer构造函数的定期间隔内触发回调。