我正在使用java.util.timer类,并且正在使用其schedule方法执行某些任务,但是在执行了6次之后,我必须停止其任务。
我该怎么办?
Answers:
在某个地方保留对计时器的引用,并使用:
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
请注意,仅取消计时器不会终止正在进行的计时器任务。
在特定时间(毫秒)内唤醒后终止一次计时器。
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(" Run spcific task at given time.");
t.cancel();
}
}, 10000);