Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
if (this.scheduledExecutionTime() < System.currentTimeMillis() + 500)
// Do something
else
// Complain: We are more then half a second late!
if (someStopCondition)
this.cancel(); // This was our last execution
};
timer.scheduleAtFixedRate(task, 1000, 1000); // schedule every second
Note that a TimerTask object is a one shot object and can only given once to a Timer. (The Timer will use the TimerTask object for bookkeeping, in this implementation).
This class also implements Runnable
to make it possible to
give a TimerTask directly as a target to a Thread
.
]]>
In this implementation the TimerTask it is possible that the Timer does keep a reference to the TimerTask until the first time the TimerTask is actually scheduled. ]]>
In this implementation the TimerTask it is possible that the Timer does keep a reference to the TimerTask until the first time the TimerTask is actually scheduled. ]]>
System.currentTimeMillis()
.
]]>