Подтвердить что ты не робот

Как остановить задачу, запланированную в классе Java.util.Timer

Я использую класс java.util.timer, и я использую его метод расписания для выполнения какой-либо задачи, но после его выполнения в 6 раз я должен остановить свою задачу.

Как мне это сделать?

4b9b3361

Ответ 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);