我正在使用java.util.timer
类,我正在使用它的schedule方法来执行某些任务,但是在执行了6次后我必须停止它的任务。
我该怎么做?
答案 0 :(得分:113)
在某处保留对计时器的引用,并使用:
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 ....
}
答案 1 :(得分:48)
要么cancel()
on the Timer
要么就是这样,要么cancel()
on the TimerTask
如果计时器本身还有其他你希望继续的任务。
答案 2 :(得分:23)
您应该停止在计时器上安排的任务: 你的计时器:
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
请注意,只是取消定时器不会终止正在进行的时间任务。
答案 3 :(得分:10)
timer.cancel(); //Terminates this timer,discarding any currently scheduled tasks.
timer.purge(); // Removes all cancelled tasks from this timer's task queue.
答案 4 :(得分:0)
在特定时间(以毫秒为单位)唤醒后终止计时器。
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(" Run spcific task at given time.");
t.cancel();
}
}, 10000);