Я использую java.util.Timer
класс, и я использую его метод расписания для выполнения некоторой задачи, но после выполнения его 6 раз я должен остановить его задачу.
Как мне это сделать?
Сохраните где-нибудь ссылку на таймер и используйте:
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 ....
}
cancel
само по себе подойдет .Либо вызов
cancel()
наTimer
, если это все , что он делает, илиcancel()
наTimerTask
, если сам таймер имеет другие задачи , которые вы хотите , чтобы продолжить.источник
Вы должны остановить задачу, которую вы запланировали на таймере: Ваш таймер:
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
Обратите внимание, что простая отмена таймера не приведет к прекращению текущих задач timertas.
источник
timer.cancel(); //Terminates this timer,discarding any currently scheduled tasks. timer.purge(); // Removes all cancelled tasks from this timer's task queue.
источник
Завершите таймер один раз после пробуждения в определенное время в миллисекундах.
Timer t = new Timer(); t.schedule(new TimerTask() { @Override public void run() { System.out.println(" Run spcific task at given time."); t.cancel(); } }, 10000);
источник