Я використовую java.util.timerклас і використовую його метод розкладу для виконання якогось завдання, але після його виконання 6 разів я повинен зупинити його завдання.
Як мені це зробити?
Відповіді:
Зберігайте десь посилання на таймер і використовуйте:
timer.cancel();
timer.purge();
зупинити все, що робить. Ви можете помістити цей код всередину завдання, яке виконуєте, за допомогою a, 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
Зверніть увагу, що просто скасування таймера не призведе до припинення поточних завдань таймера.
Завершіть таймер один раз після пробудження в певний час в мілісекундах.
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(" Run spcific task at given time.");
t.cancel();
}
}, 10000);