CountDownTimer в android - как его перезапустить

I перезапустить CountDownTimer. Я много читал здесь, но ни один из ответов не помог мне. Когда я использую следующий код

if(Const.counter != null){
    Const.counter.cancel();
    Const.counter = null;
}


Const.counter = new CustomTimerTask(Const.currentLevel.timeGoal * 1000,1000);
Const.counter.start();

Я запускаю новый счетчик, но старый тоже продолжает работать. Пожалуйста, помогите мне решить эту проблему.

Ответ 1

Вы можете реализовать это, отменив и перезапустив. Следующий пример должен работать.

CountDownTimer mCountDownTimer = new CountDownTimer(500, 1000) {

    @Override
    public void onTick(long millisUntilFinished) {}

    @Override
    public void onFinish() {
        isCounterRunning = false;
    }
};


boolean isCounterRunning  = false;

private void yourOperation() {
    if( !isCounterRunning ){
        isCounterRunning = true;
        mCountDownTimer.start();
    }
    else{
        mCountDownTimer.cancel(); // cancel
        mCountDownTimer.start();  // then restart
    }

}

Ответ 2

Я сделал несколько разных трюков. Надеюсь, это поможет вам.

if (myCountDownTimer != null) {
            myCountDownTimer.cancel();
        }
        myCountDownTimer = new MyCountDownTimer(10000, 500);
        myCountDownTimer.start();

Ответ 3

таймер остановки для викторины

 if(countDownTimer!=null)
            {
                countDownTimer.cancel();
                countDownTimer.start();
                }
            else {
               countDownTimer = new CountDownTimer(30000, 1000) {

                    public void onTick(long l) {
                        mtimer.setText("remaining time" + l / 1000);//mtime is a textview
                    }

                    public void onFinish() {//here mnext is the button from which we can get next question.
                        mnext.performClick();//this is used to perform clik automatically

                    }
                }.start();