我有一个方法将在连续间隔后重复调用。我用过public void schedule(TimerTask task, Date firstTime, long period)
。如何在特定时间后停止调用此调度方法。
现在我不知道如何停止这种方法。
任何帮助将不胜感激。
我有一个方法将在连续间隔后重复调用。我用过public void schedule(TimerTask task, Date firstTime, long period)
。如何在特定时间后停止调用此调度方法。
现在我不知道如何停止这种方法。
任何帮助将不胜感激。
你可以安排取消。例如,使用 ScheduledExecutor,它可能如下所示:
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);
Runnable yourRecurrentTask = ...; //your recurrent task
//run every seconds
final ScheduledFuture<?> future = scheduler.
scheduleAtFixedRate(yourRecurrentTask, 0, 1, TimeUnit.SECONDS);
Runnable cancelTask = new Runnable() {
@Override
public void run() {
future.cancel(true);
}
};
//cancel the reccurent task in 15 seconds
scheduler.schedule(cancelTask, 15, TimeUnit.SECONDS);
你不能在给定时间后停止计时器吗?您可以使用另一个计时器,它只会触发一次并停止另一个计时器。
安排另一个任务,该任务包含对您现有的引用TimerTask
并调用cancel
它。您应该将此任务安排为一次性计划,不得重复。