J'utilise la java.util.timerclasse et j'utilise sa méthode de planification pour effectuer une tâche, mais après l'avoir exécutée 6 fois, je dois arrêter sa tâche.
Comment dois-je faire ça?
Réponses:
Gardez une référence à la minuterie quelque part et utilisez:
timer.cancel();
timer.purge();
pour arrêter tout ce qu'il fait. Vous pouvez mettre ce code dans la tâche que vous effectuez avec un static intpour compter le nombre de fois où vous êtes allé, par exemple
private static int count = 0;
public static void run() {
count++;
if (count >= 6) {
timer.cancel();
timer.purge();
return;
}
... perform task here ....
}
cancelcela fonctionnerait.
Soit appel cancel()sur leTimer si c'est tout qu'il fait, ou cancel()sur leTimerTask si la minuterie elle - même a d' autres tâches que vous souhaitez continuer.
Vous devez arrêter la tâche que vous avez programmée sur le minuteur: Votre minuteur:
Timer t = new Timer();
TimerTask tt = new TimerTask() {
@Override
public void run() {
//do something
};
}
t.schedule(tt,1000,1000);
Pour arrêter:
tt.cancel();
t.cancel(); //In order to gracefully terminate the timer thread
Notez que le simple fait d'annuler la minuterie ne mettra pas fin aux tâches horaires en cours.
Arrêtez la minuterie une fois après le réveil à un moment précis en millisecondes.
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(" Run spcific task at given time.");
t.cancel();
}
}, 10000);