Таймер не останавливается, когда я нажимаю кнопку назад в Android

1

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

Извините за мой английский.

Спасибо заранее.

  • 0
    Можете ли вы объяснить больше? Что делает твой таймер? Возможно, если мы еще немного поймем ваше приложение, мы сможем дать ответ.
Теги:

2 ответа

2

Как насчет переопределения метода onBackPressed()? Что-то вроде этого (untested):

CountDownTimer mTimer;

// snip...

@Override
public void onBackPressed() {
    mTimer.cancel();
}
  • 0
    Он, вероятно, должен отменить таймер всякий раз, когда активность уходит в фоновый режим (например, нажав кнопку «Домой»), а не только на кнопку «Назад». Правильное место для этого - onPause как подсказывает @ohm.
  • 1
    @Ted: ОП не спрашивал о фоновом сценарии - более конкретно, о нажатии кнопки НАЗАД, который завершит действие. Может случиться так, что для таймера все в порядке, пока пользователь временно переходит на домашний экран, но таймер должен быть остановлен в сценарии «завершения». Две разные вещи.
Показать ещё 2 комментария
2

Вам нужно отменить таймер. Вызовите timer.cancel(), когда вы нажмете кнопку "Назад". Например. в методе onPause().

  • 0
    Я сам новичок в Android, но похоже, что onPause() не будет делать то, что хочет OP: stackoverflow.com/questions/5572982/… . Я ошибаюсь?
  • 1
    @Matt: да и нет. Обычно onPause () будет достаточно, но на самом деле самый безопасный способ - проверить, что таймер существует (т. Е. Не равен нулю) и вызвать метод отмены в onDestroy () в качестве последнего средства.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню