相关疑难解决方法(0)

可重置的Java计时器

我想在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)

有没有更简单的方法??

java timer

38
推荐指数
2
解决办法
4万
查看次数

标签 统计

java ×1

timer ×1