Sto usando la java.util.timerclasse e sto usando il suo metodo di pianificazione per eseguire alcune attività, ma dopo averlo eseguito per 6 volte devo interrompere il suo compito.
Come dovrei farlo?
Risposte:
Tieni un riferimento al timer da qualche parte e usa:
timer.cancel();
timer.purge();
per fermare qualunque cosa stia facendo. Puoi inserire questo codice all'interno static intdell'attività che stai eseguendo con un per contare il numero di volte che sei andato in giro, ad es
private static int count = 0;
public static void run() {
count++;
if (count >= 6) {
timer.cancel();
timer.purge();
return;
}
... perform task here ....
}
cancelfunzionerebbe.
Sia chiamata cancel()sulTimer se questo è tutto quello che sta facendo, o cancel()sulTimerTask se il timer in sé ha altri compiti che si desidera continuare.
Dovresti interrompere l'attività che hai programmato sul timer: Il tuo timer:
Timer t = new Timer();
TimerTask tt = new TimerTask() {
@Override
public void run() {
//do something
};
}
t.schedule(tt,1000,1000);
Per fermarsi:
tt.cancel();
t.cancel(); //In order to gracefully terminate the timer thread
Si noti che la semplice cancellazione del timer non terminerà le attività temporali in corso.
Termina il timer una volta dopo il risveglio in un momento specifico in millisecondi.
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(" Run spcific task at given time.");
t.cancel();
}
}, 10000);