Как остановить задачу, запланированную в классе Java.util.Timer
Я использую класс java.util.timer, и я использую его метод расписания для выполнения какой-либо задачи, но после его выполнения в 6 раз я должен остановить свою задачу.
Как мне это сделать?
Ответ 1
Храните ссылку на таймер где-нибудь и используйте:
timer.cancel();
timer.purge();
чтобы остановить все, что он делает. Вы можете поместить этот код внутри задачи, которую вы выполняете, с помощью static int, чтобы подсчитать количество раз, когда вы перешли, например.
private static int count = 0;
public static void run() {
count++;
if (count >= 6) {
timer.cancel();
timer.purge();
return;
}
... perform task here ....
}
Ответ 2
Либо вызовите cancel() в Timer, если это все, что он делает, или cancel() в TimerTask, если у самого таймера есть другие задачи, которые вы хотите продолжить.
Ответ 3
Вы должны остановить задание, которое вы запланировали на таймере:
Ваш таймер:
Timer t = new Timer();
TimerTask tt = new TimerTask() {
@Override
public void run() {
//do something
};
}
t.schedule(tt,1000,1000);
Чтобы остановить:
tt.cancel();
t.cancel(); //In order to gracefully terminate the timer thread
Обратите внимание, что только отмена таймера не приведет к прекращению выполнения текущих задач.
Ответ 4
timer.cancel(); //Terminates this timer,discarding any currently scheduled tasks.
timer.purge(); // Removes all cancelled tasks from this timer task queue.
Ответ 5
Завершить таймер один раз после пробуждения в определенное время в миллисекундах.
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(" Run spcific task at given time.");
t.cancel();
}
}, 10000);