2016-06-22 4 views
0

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

+0

Вы не можете использовать один и тот же таймер. Поэтому нужно создать новый экземпляр этого. – aravindkanna

ответ

0

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

if(condition == true) 
{ 
timer = new Timer(); 
    timer.schedule(new TimerTask(), delay, span); 
} 
else{ 
    timer.cancel(); 
} 
0

Создать CountDownTimer класс как:

public class MyCount extends CountDownTimer { 
       public MyCount(long millisInFuture, long countDownInterval) { 
        super(millisInFuture, countDownInterval); 
       } 

       @Override 
       public void onFinish() { 
        // do something of finish timer 
      } 

      @Override 
      public void onTick(long millisUntilFinished) { 
       // do something on tick of timer 
      } 
     } 

и должен создать объект MyTimer, как показано ниже:

MyCount timerCount = new MyCount(<TIME_UNTIL_FINISH_MILLISECONDS>, <TIME_OF_EACH_TICK>); 

и может начать таймер везде вы хотите с:

timerCount.start(); 

и отменить его:

timerCount.cancel(); 
Смежные вопросы