为什么下面的 android 中的倒数计时器总是在最后显示 00:01?
Why does the following Count down timer in android always shows 00:01 at the end?
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) 如何调用 CountDowntimer
的 onTick()
方法?
1) 分钟 - 小时的工作方式 TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished))
不知道你为什么要这样做。你可以只写
字符串 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");
}
因此您可以在上面代码段中显示的 onFinish() 方法中设置“00:00”。
3)CountDowntimer的onTick()方法是如何调用的?
-onTick() 回调在提供给 CountDowntimer 构造函数的固定时间间隔内触发。
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) 如何调用 CountDowntimer
的 onTick()
方法?
1) 分钟 - 小时的工作方式 TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished))
不知道你为什么要这样做。你可以只写
字符串 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");
}
因此您可以在上面代码段中显示的 onFinish() 方法中设置“00:00”。
3)CountDowntimer的onTick()方法是如何调用的?
-onTick() 回调在提供给 CountDowntimer 构造函数的固定时间间隔内触发。