java - java中的定时器任务?

标签 java timer timertask

我必须在 java 中执行 timertask。场景是:我必须最初安排一些延迟的任务。如果我单击了一个按钮,它将取消当前的计时器,然后重新安排它。如何在java中实现它?

当我使用cancel() 时,我无法再次访问计时器。那就是我不能重用那个对象。我已将 TimerTimertask 声明为静态。

提前致谢。

最佳答案

我能想到的最简单的实现方法是使用 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/

相关文章:

java - 字节好友 : How to test with classes from java. *

java - 如何使用 iText 在 JSP 中显示有限页数的 PDF 文件?

java - 时间字符串上的西类牙语 java.time.format.DateTimeParseException

java - GWT RequestFactory 是否支持乐观并发控制的实现?

java - 使用计时器绘制在 JFrame 上滚动的图形

java - Timer 和 TimerTask - 如何从 TimerTask 运行中重新安排 Timer

java - 为游戏重新安排 TimerTask 'lobby'

c# - 在不使用私有(private)成员的情况下保持 System.Threading.Timer 处于事件状态

JavaScript 倒计时器在达到 1 天、1 秒、1 分钟时更改文本

Android Asynctask vs Runnable vs timertask vs Service