可复位的 Java 计时器
我想有一个java.utils.Timer,在java中具有可重置的时间。我需要设置一个 once off 事件,在 X 秒内发生。如果在创建计时器的时间和 X 秒之间没有任何反应,则该事件将照常发生。
但是,如果在 X 秒过去之前,我决定该事件应该在 Y 秒之后发生,那么我希望能够告诉计时器重置其时间,以便事件在 Y 秒内发生。例如,计时器应该能够执行如下操作:
Timer timer = new Timer();
timer.schedule(timerTask, 5000); //Timer starts in 5000 ms (X)
//At some point between 0 and 5000 ms...
setNewTime(timer, 8000); //timerTask will fire in 8000ms from NOW (Y).
我没有看到使用utils计时器执行此操作的方法,就像您调用unde cancel()一样,您无法再次安排它。
我接近复制此行为的唯一方法是使用javax.swing.Timer,并涉及停止原始计时器,并创建一个新的计时器。即:
timer.stop();
timer = new Timer(8000, ActionListener);
timer.start();
有没有更简单的方法??