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