CountDownTimer 奇怪的完成行为
CountDownTimer strange Finish behaviour
当计时器完成时,它会回到之前的 Activity 一秒钟,然后应用 onFinish
是什么原因以及如何预防。
mCountDownTimer = new CountDownTimer(mTimeLeftInMillis, 1000) {
@Override
public void onTick(long millisUntilFinished) {
mTimeLeftInMillis = millisUntilFinished;
updateCountDownText();
}
@Override
public void onFinish() {
playAgain();
}
}.start();
Reseaon在每个tick的开始,在调用onTick()
之前,计算倒计时结束前的剩余时间,如果这个时间小于倒计时时间间隔,onTick()
不会再叫了。
当 onTick()
调用 CountDownTimer
时会消耗一些时间进行计算。处理此问题的最简单方法是向您的计时器添加一些额外的 timeLeftInMillis
!
当计时器完成时,它会回到之前的 Activity 一秒钟,然后应用 onFinish 是什么原因以及如何预防。
mCountDownTimer = new CountDownTimer(mTimeLeftInMillis, 1000) {
@Override
public void onTick(long millisUntilFinished) {
mTimeLeftInMillis = millisUntilFinished;
updateCountDownText();
}
@Override
public void onFinish() {
playAgain();
}
}.start();
Reseaon在每个tick的开始,在调用onTick()
之前,计算倒计时结束前的剩余时间,如果这个时间小于倒计时时间间隔,onTick()
不会再叫了。
当 onTick()
调用 CountDownTimer
时会消耗一些时间进行计算。处理此问题的最简单方法是向您的计时器添加一些额外的 timeLeftInMillis
!