我必须在 java 中执行 timertask。场景是:我必须最初安排一些延迟的任务。如果我单击了一个按钮,它将取消当前的计时器,然后重新安排它。如何在java中实现它?
当我使用cancel()
时,我无法再次访问计时器。那就是我不能重用那个对象。我已将 Timer
和 Timertask
声明为静态。
提前致谢。
最佳答案
我能想到的最简单的实现方法是使用 Executor .
假设您要安排一个任务在 30 秒内运行:
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.schedule(new Task(), 30, TimeUnit.SECONDS);
Task
必须是一个实现了 Runnable
接口(interface)的类:
class Task implements Runnable
{
public void run()
{
// do your magic here
}
}
如果您需要停止执行您的任务,您可以使用shutdownNow
方法:
// prevents task from executing if it hasn't executed yet
scheduler.shutdownNow();
关于java - java中的定时器任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4388353/