Проблема с таймером обратного отсчета на Android

Привет, у меня есть таймер обратного отсчета в моем методе oncreate деятельности следующим образом

   start1 = new CountDownTimer(level1time, 1000) 
         //timer updated every second
          {

         public void onTick(long millisUntilFinished) {
       }
    public void onFinish() {
           //switch activities
    }

          }

         .start();
    }

Затем я вызываю start1.cancel позже в своем коде. Это работает, когда это конкретное действие запускается один раз, но когда это действие создается снова позже, действия мгновенно переключаются из-за завершения первого таймера.

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


person user560571    schedule 29.03.2011    source источник


Ответы (1)


В любом случае лучше использовать обработчики вместо таймеров. Обычно я создаю окончательный объект Runnable, который запускает то, что я хочу, через определенное время, создаю новый обработчик в onCreate() и отправляю ему Runnable после определенной задержки с помощью postDelayed(Runnable, int). Если пользователь покидает действие или вы хотите, чтобы оно не выполнялось, вы можете просто вызвать Handler.removeCallbacks(Runnable) с вашим определенным Runnable, чтобы остановить «таймер» на нем.

Это высокоуровневый подход к вашему вопросу. Познакомьтесь с классом Handler, и это станет очень простой задачей.

person LeffelMania    schedule 29.03.2011