У меня проблема в андроид студии с таймером - PullRequest
0 голосов
/ 16 марта 2019

В приложении я снова открываю ту же активность, в которой находится таймер. Первый таймер работает, но после этого он начинает глючить Runs onFinish() в случайное время. Как я могу это исправить?

new CountDownTimer(10000, 1000) {
    public void onTick(long millisUntilFinished) {
        textQuestion.setText("seconds remaining: " + millisUntilFinished / 1000);
    }
    public void onFinish() {
        wrongAnswer();
    }
}.start();

1 Ответ

0 голосов
/ 16 марта 2019

Вы должны сохранить CountDownTimer в таймере и отменить его при переходе к другому действию или фрагменту;

Создать CountDownTimer в качестве глобальной переменной (выше onCreate)

CountDownTimer timer;

Инициализировать таймер гдеВы хотите запустить таймер или всякий раз, когда

timer = new CountDownTimer(10000, 1000) {

        public void onTick(long millisUntilFinished) {
            textQuestion.setText("seconds remaining: " + millisUntilFinished / 1000);
        }

        public void onFinish() {
            wrongAnswer();
        }
    }.start();

И в onDestroy отмените его

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