2009-09-11 25 views

Respuesta

94

mantener una referencia al temporizador en alguna parte, y uso:

timer.cancel(); 
timer.purge(); 

para detener lo que está haciendo. Puede poner este código dentro de la tarea que está realizando con un static int para contar la cantidad de veces que ha pasado, p.

private static int count = 0; 
public static void run() { 
    count++; 
    if (count >= 6) { 
     timer.cancel(); 
     timer.purge(); 
     return; 
    } 

    ... perform task here .... 

} 
+4

creo cancelar es suficiente, no es necesario tener purga – Jacky

+0

es bueno para añadir timer.cancel() en la final de acuerdo con (libro Effetive Java) –

+0

@Jacky que es una buena práctica tener ambos, pero teóricamente 'cancelar' en sí mismo funcionaría. –

13

Debe dejar la tarea que ha programado en el temporizador: Su temporizador:

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

el fin de detener:

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

en cuenta que acaba de cancelar el temporizador no terminar los horarios de trabajo continuos.

9
timer.cancel(); //Terminates this timer,discarding any currently scheduled tasks. 

timer.purge(); // Removes all cancelled tasks from this timer's task queue. 
1

Termine el temporizador una vez que esté despierto a una hora específica en 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); 
Cuestiones relacionadas