Я использую класс java.util.timer
, и я использую его метод расписания для выполнения какой-либо задачи, но после его выполнения в 6 раз я должен остановить свою задачу.
Как мне это сделать?
Я использую класс 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()
в 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
Обратите внимание, что только отмена таймера не приведет к прекращению выполнения текущих задач.
timer.cancel(); //Terminates this timer,discarding any currently scheduled tasks.
timer.purge(); // Removes all cancelled tasks from this timer 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);