2016-06-22 7 views
0

Ich entwickle eine Anwendung, die Timer für einen bestimmten Zweck verwenden muss. Was ich tun muss ist, einen Timer zu setzen, wenn eine Bedingung erfüllt ist und es entsprechend zu löschen. Dann darf ich wieder den gleichen Timer starten, den ich abgebrochen habe. Bitte geben Sie eine Lösung an.Wiederverwendung eines Timers nach dem Abbrechen

+0

Sie können nicht den gleichen Timer verwenden. Also müssen Sie eine neue Instanz davon erstellen. – aravindkanna

Antwort

0

Für einen einzigen Timer Android setzt einen einzelnen Thread. Wenn Sie diesen Timer abbrechen, wird der Ausführungs-Thread ordnungsgemäß beendet und es können keine weiteren Aufgaben geplant werden. Sie müssen also eine neue Instanz des Timer-Objekts erstellen. können Sie tun, wie unten gezeigt.

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

erstellen CountDownTimer Klasse wie:

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 
      } 
     } 

und sollte ein Objekt von MyTimer wie unten machen:

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

und Timer starten kann überall Sie wollen mit:

timerCount.start(); 

und Abbrechen mit:

timerCount.cancel();