Como parar a tarefa agendada em Java.util.Classe do temporizador

estou a usar a classe {[[0]} e estou a usar o seu método de programação para realizar alguma tarefa, mas depois de a executar por 6 vezes tenho de parar a sua tarefa.

Como devo fazer isso?

 68
Author: R. Oosterholt, 2009-09-11

5 answers

Mantenha uma referência ao temporizador algures, e use:

timer.cancel();
timer.purge();
Para parar o que quer que esteja a fazer. Você poderia colocar este código dentro da tarefa que você está executando com um static int para contar o número de vezes que você foi ao redor, por exemplo
private static int count = 0;
public static void run() {
     count++;
     if (count >= 6) {
         timer.cancel();
         timer.purge();
         return;
     }

     ... perform task here ....

}
 100
Author: Fritz H, 2009-09-11 05:28:00

Chamar cancel() no Timer se o que ele está fazendo, ou cancel() no TimerTask se o temporizador de si tem outras tarefas que você deseja continuar.

 45
Author: Jon Skeet, 2009-09-11 05:26:02

Você deve parar a tarefa que você marcou no temporizador: O seu temporizador:

Timer t = new Timer();
TimerTask tt = new TimerTask() {
    @Override
    public void run() {
        //do something
    };
}
t.schedule(tt,1000,1000);

Para parar:

tt.cancel();
t.cancel(); //In order to gracefully terminate the timer thread

Notice that just cancelling the timer will not terminate ongoing timertasks.

 19
Author: Vering, 2013-06-18 14:29:30
timer.cancel();  //Terminates this timer,discarding any currently scheduled tasks.

timer.purge();   // Removes all cancelled tasks from this timer's task queue.
 10
Author: Abhi, 2015-01-29 11:56:47
Termine o temporizador uma vez depois de acordar, em milisegundos.
Timer t = new Timer();
t.schedule(new TimerTask() {
            @Override
             public void run() {
             System.out.println(" Run spcific task at given time.");
             t.cancel();
             }
 }, 10000);
 1
Author: Ajay, 2016-10-08 17:10:01