Class TimerTask

java.lang.Object
java.util.TimerTask
All Implemented Interfaces:
Runnable

public abstract class TimerTask extends Object implements 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.

Since:
1.3
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Creates a new timer task.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Cancels this timer task.
    abstract void
    run()
    The action to be performed by this timer task.
    long
    Returns the scheduled execution time of the most recent actual execution of this task.

    Methods declared in class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    Modifier and Type
    Method
    Description
    protected Object
    Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.
    boolean
    Compares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    May cause performance issues, deadlocks and hangs.
    final Class<? extends Object>
    Answers the unique instance of java.lang.Class which represents the class of the receiver.
    int
    Answers an integer hash code for the receiver.
    final void
    Causes one thread which is waiting on the receiver to be made ready to run.
    final void
    Causes all threads which are waiting on the receiver to be made ready to run.
    Answers a string containing a concise, human-readable description of the receiver.
    final void
    Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated by notify or notifyAll).
    final void
    wait(long time)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
    final void
    wait(long time, int frac)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
  • Constructor Details

    • TimerTask

      protected TimerTask()
      Creates a new timer task.
  • Method Details

    • run

      public abstract void run()
      The action to be performed by this timer task.
      Specified by:
      run in interface Runnable
    • cancel

      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:
      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.)
    • scheduledExecutionTime

      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:
      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: