Как остановить таймер обратного отсчета, когда в новом действии - PullRequest
0 голосов
/ 24 мая 2019

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

      {

    context = this;


    new CountDownTimer(+16000, 1000) {
        public void onTick(long millisUntilFinished) {
            TextView variable = (countdownText);
            final int counter = Main1Activity.this.counter;
            textView.setText(String.valueOf(counter +15));
            Main1Activity.this.counter--;
            if(countdownTimer != null) countdownTimer.cancel();

        }


        public void onFinish() {
            // Here do what you like...
            Intent intent = new Intent(context, MainActivity.class);
            startActivity(intent);

        }

    }.start();

}

1 Ответ

0 голосов
/ 25 мая 2019

Вы можете легко преодолеть трудности, используя функции жизненного цикла действия, в котором работает таймер.Все, что вам нужно сделать, это остановить таймер, когда действие приостановлено или уничтожено.

Следовательно, вы можете сделать что-то вроде следующего.

@Override
protected void onPause() {
    super.onPause();
   if(countDownTimer != null) countDownTimer.cancel();
}

Чтобы понять жизненный цикл действия, пожалуйста, посмотрите эту документацию здесь.

...