Come interrompere l’attività pianificata nella class Java.util.Timer

Sto usando la class java.util.timer 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?

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 dell’attività che stai eseguendo con una static int per contare il numero di volte in cui 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 .... } 

Chiamate cancel() sul Timer se questo è tutto ciò che sta facendo, o cancel() sul TimerTask se il timer stesso ha altre attività che volete 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 fermare:

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

Si noti che la semplice cancellazione del timer non interromperà i timertasks in corso.

 timer.cancel(); //Terminates this timer,discarding any currently scheduled tasks. timer.purge(); // Removes all cancelled tasks from this timer's task queue. 

Terminare 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);