我想有一個java.utils.Timer與一個可重置時間在java.I需要設置一次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計時器,如果你調用cancel(),你不能再次調度它。
我接近復制這種行為的唯一方法是使用javax.swing.Timer,并涉及停止原創定時器,并創建一個新的。例如:
timer.stop();
timer = new Timer(8000, ActionListener);
timer.start();
有更容易的方法嗎?