如何停止在Java.util.Timer类中计划的任务

我正在使用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 .... } 

要么在Timer上调用cancel() ,要么在TimerTask上定义cancel()如果定时器本身还有其他你想要继续的任务)。

您应该停止您在计时器上安排的任务:您的计时器:

 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's 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);