暂停并恢复android倒计时器

时间:2016-03-11 23:02:58

标签: android countdowntimer

我有自动启动的android倒计时器。我需要暂停并恢复它。我见过其他解决方案,但他们没有工作。我的代码是:

class Timer extends CountDownTimer
{
    public Timer(long millisInFuture, long countDownInterval)
    {
        super(millisInFuture, countDownInterval);
        timerTimedOut = false;
    }

    @Override
    public void onFinish() {
        if(timerTimedOut){
            doSTH();
        } else {
            doSTHElse();
        }

        this.start();
    }

    @Override
    public void onTick(long millisUntilFinished)
    {
        timerShow.setText(Long.toString(millisUntilFinished / 1000));

    }
    public void stop(){
        timerTimedOut = true;
        this.cancel();
        onFinish();
    }
}

我该怎么做才能暂停和恢复它?

1 个答案:

答案 0 :(得分:2)

我一直在处理这个问题,在尝试了很多事情之后,我找到了这个解决方案。在这里,您可以找到Android CountDownTimer类的绝佳替代方案: https://gist.github.com/bverc/1492672

您只需创建一个名为CountDownTimer2的新类,然后粘贴该代码即可。然后,使用它而不是正常的CountDownTimer类,例如:

 CountDownTimer2 cdt = new CountDownTimer2(30000, 1000) {
        @Override
        public void onTick(long millisUntilFinished) {

            //Whatever you want to do onTick


        }

        @Override
        public void onFinish() {
            Log.i(TAG, "Timer finished");
        }


    };

    cdt.start();

}

那么你只需传递

cdt.pause();

cdt.resume();

希望它有所帮助。