Estoy usando java.util.timerclase y estoy usando su método de programación para realizar alguna tarea, pero después de ejecutarla 6 veces tengo que detener su tarea.
¿Cómo debo hacer eso?
Respuestas:
Mantenga una referencia al temporizador en algún lugar y use:
timer.cancel();
timer.purge();
para detener lo que sea que esté haciendo. Puede poner este código dentro de la tarea que está realizando con un static intpara contar el número de veces que ha dado una vuelta, por ejemplo
private static int count = 0;
public static void run() {
count++;
if (count >= 6) {
timer.cancel();
timer.purge();
return;
}
... perform task here ....
}
cancelfuncionaría.
O llame cancel()alTimer si eso es todo lo que está haciendo, o cancel()alTimerTask si el temporizador tiene otras tareas que desea continuar.
Debe detener 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);
Para detener:
tt.cancel();
t.cancel(); //In order to gracefully terminate the timer thread
Tenga en cuenta que simplemente cancelar el temporizador no terminará las tareas de tiempo en curso.
Termine el temporizador una vez después de despertarse 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);