java倒计时奇怪的完成行为
当计时器完成时,它会返回到上一个活动一秒钟,然后应用onFinish 原因是什么?如何预防
mCountDownTimer = new CountDownTimer(mTimeLeftInMillis, 1000) {
@Override
public void onTick(long millisUntilFinished) {
mTimeLeftInMillis = millisUntilFinished;
updateCountDownText();
}
@Override
public void onFinish() {
playAgain();
}
}.start();
# 1 楼答案
重新排列是在每个刻度开始时,在调用
onTick()
之前,计算倒计时结束之前的剩余时间,如果该时间小于倒计时时间间隔,则不再调用onTick()
。 当onTick()
调用CountDownTimer
时,需要花费一些时间进行计算。处理这个问题最简单的方法是在计时器中添加一些额外的timeLeftInMillis