Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Protected Ctors](https://developer.android.com/reference/java/util/TimerTask#proctors) \| [Methods](https://developer.android.com/reference/java/util/TimerTask#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/util/TimerTask#inhmethods)

# TimerTask


`
public


abstract
class
TimerTask
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


implements

https://developer.android.com/reference/java/lang/Runnable


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | java.util.TimerTask |

<br />

*** ** * ** ***

A task that can be scheduled for one-time or repeated execution by a
`https://developer.android.com/reference/java/util/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`.

## Summary

| ### Protected constructors ||
|---|---|
| ` https://developer.android.com/reference/java/util/TimerTask#TimerTask()() ` Creates a new timer task. |

| ### Public methods ||
|---|---|
| ` boolean` | ` https://developer.android.com/reference/java/util/TimerTask#cancel()() ` Cancels this timer task. |
| ` abstract void` | ` https://developer.android.com/reference/java/util/TimerTask#run()() ` The action to be performed by this timer task. |
| ` long` | ` https://developer.android.com/reference/java/util/TimerTask#scheduledExecutionTime()() ` Returns the *scheduled* execution time of the most recent *actual* execution of this task. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||
| From interface ` https://developer.android.com/reference/java/lang/Runnable ` |---|---| | ` abstract void` | ` https://developer.android.com/reference/java/lang/Runnable#run()() ` When an object implementing interface `Runnable` is used to create a thread, starting the thread causes the object's `run` method to be called in that separately executing thread. | ||

## Protected constructors

### TimerTask

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected TimerTask ()
```

Creates a new timer task.

<br />

## Public methods

### cancel

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

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

<br />

| 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.) <br /> |

### run

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void run ()
```

The action to be performed by this timer task.

<br />

### scheduledExecutionTime

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

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

<br />

<br />

| 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. <br /> |

**See also:**

- `https://developer.android.com/reference/java/util/Date#getTime()`