我想在java中有一个带有可重置时间的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).
Run Code Online (Sandbox Code Playgroud)
我没有看到使用utils计时器的方法,就像你调用cancel(),你不能再次安排它.
我接近复制此行为的唯一方法是使用javax.swing.Timer并涉及停止原始计时器,并创建一个新计时器.即:
timer.stop();
timer = new Timer(8000, ActionListener);
timer.start();
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法??