TimerTaskpublic abstract class TimerTask extends Object implements RunnableA task that can be scheduled for one-time or repeated execution by a Timer. |
Fields Summary |
---|
final Object | lockThis object is used to control access to the TimerTask internals. | int | stateThe state of this task, chosen from the constants below. | static final int | VIRGINThis task has not yet been scheduled. | static final int | SCHEDULEDThis task is scheduled for execution. If it is a non-repeating task,
it has not yet been executed. | static final int | EXECUTEDThis non-repeating task has already executed (or is currently
executing) and has not been cancelled. | static final int | CANCELLEDThis task has been cancelled (with a call to TimerTask.cancel). | long | nextExecutionTimeNext execution time for this task in the format returned by
System.currentTimeMillis, assuming this task is scheduled for execution.
For repeating tasks, this field is updated prior to each task execution. | long | periodPeriod in milliseconds for repeating tasks. A positive value indicates
fixed-rate execution. A negative value indicates fixed-delay execution.
A value of 0 indicates a non-repeating task. |
Constructors Summary |
---|
protected TimerTask()Creates a new timer task.
|
Methods Summary |
---|
public boolean | cancel()Cancels this timer task. If the task has been scheduled for one-time
execution and has not yet run, or has not yet been scheduled, it will
never run. If the task has been scheduled for repeated execution, it
will never run again. (If the task is running when this call occurs,
the task will run to completion, but will never run again.)
Note that calling this method from within the run method of
a repeating timer task absolutely guarantees that the timer task will
not run again.
This method may be called repeatedly; the second and subsequent
calls have no effect.
synchronized(lock) {
boolean result = (state == SCHEDULED);
state = CANCELLED;
return result;
}
| public abstract void | run()The action to be performed by this timer task.
| public long | scheduledExecutionTime()Returns the scheduled execution time of the most recent
actual execution of this task. (If this method is invoked
while task execution is in progress, the return value is the scheduled
execution time of the ongoing task execution.)
This method is typically invoked from within a task's run method, to
determine whether the current execution of the task is sufficiently
timely to warrant performing the scheduled activity:
public void run() {
if (System.currentTimeMillis() - scheduledExecutionTime() >=
MAX_TARDINESS)
return; // Too late; skip this execution.
// Perform the task
}
This method is typically not used in conjunction with
fixed-delay execution repeating tasks, as their scheduled
execution times are allowed to drift over time, and so are not terribly
significant.
synchronized(lock) {
return (period < 0 ? nextExecutionTime + period
: nextExecutionTime - period);
}
|
|