我想在 java.utils.Timer 中有一个可重置时间的 java.utils.Timer。我需要设置一个在 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 计时器来执行此操作的方法,就好像您调用 cancel() 您无法再次安排它一样。
我接近复制此行为的唯一方法是使用 javax.swing.Timer 并涉及停止原始计时器并创建一个新计时器。IE:
timer.stop();
timer = new Timer(8000, ActionListener);
timer.start();
有没有更简单的方法??