APIdia Launch Partner
Top Description Fields Constructors Methods
java.util

public abstract Class TimerTask

extends Object
implements Runnable
Class Inheritance
All Implemented Interfaces
java.lang.Runnable

A task that can be scheduled for one-time or repeated execution by a Timer.

A timer task is not reusable. Once a task has been scheduled for execution on a Timer or cancelled, subsequent attempts to schedule it for execution will throw IllegalStateException.

Author
Josh Bloch
Since
1.3

Field Summary

Modifier and TypeField and Description
pack-priv static final int
CANCELLED

This task has been cancelled (with a call to TimerTask.cancel).

pack-priv static final int
EXECUTED

This non-repeating task has already executed (or is currently executing) and has not been cancelled.

pack-priv final Object
lock

This object is used to control access to the TimerTask internals.

pack-priv long
nextExecutionTime

Next execution time for this task in the format returned by System.currentTimeMillis, assuming this task is scheduled for execution.

pack-priv long
period

Period in milliseconds for repeating tasks.

pack-priv static final int
SCHEDULED

This task is scheduled for execution.

pack-priv int
state

The state of this task, chosen from the constants below.

pack-priv static final int
VIRGIN

This task has not yet been scheduled.

Constructor Summary

AccessConstructor and Description
protected
TimerTask()

Creates a new timer task.

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

true if this task is scheduled for one-time execution and has not yet run, or this task is scheduled for repeated execution. Returns false if the task was scheduled for one-time execution and has already run, or if the task was never scheduled, or if the task was already cancelled. (Loosely speaking, this method returns true if it prevents one or more scheduled executions from taking place.)
cancel
()

Cancels this timer task.

public abstract void
run()

Redeclares java.lang.Runnable.run.

The action to be performed by this timer task.

public long

Returns:

the time at which the most recent execution of this task was scheduled to occur, in the format returned by Date.getTime(). The return value is undefined if the task has yet to commence its first execution.
scheduledExecutionTime
()

Returns the scheduled execution time of the most recent actual execution of this task.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

CANCELLEDback to summary
pack-priv static final int CANCELLED

This task has been cancelled (with a call to TimerTask.cancel).

EXECUTEDback to summary
pack-priv static final int EXECUTED

This non-repeating task has already executed (or is currently executing) and has not been cancelled.

lockback to summary
pack-priv final Object lock

This object is used to control access to the TimerTask internals.

nextExecutionTimeback to summary
pack-priv long nextExecutionTime

Next 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.

periodback to summary
pack-priv long period

Period 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.

SCHEDULEDback to summary
pack-priv static final int SCHEDULED

This task is scheduled for execution. If it is a non-repeating task, it has not yet been executed.

stateback to summary
pack-priv int state

The state of this task, chosen from the constants below.

VIRGINback to summary
pack-priv static final int VIRGIN

This task has not yet been scheduled.

Constructor Detail

TimerTaskback to summary
protected TimerTask()

Creates a new timer task.

Method Detail

cancelback to 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.

Returns:boolean

true if this task is scheduled for one-time execution and has not yet run, or this task is scheduled for repeated execution. Returns false if the task was scheduled for one-time execution and has already run, or if the task was never scheduled, or if the task was already cancelled. (Loosely speaking, this method returns true if it prevents one or more scheduled executions from taking place.)

runback to summary
public abstract void run()

Redeclares java.lang.Runnable.run.

The action to be performed by this timer task.

scheduledExecutionTimeback to summary
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.
Returns:long

the time at which the most recent execution of this task was scheduled to occur, in the format returned by Date.getTime(). The return value is undefined if the task has yet to commence its first execution.

See Also
Date#getTime()