com.google.gwt.user.client

## Class Timer

- java.lang.Object
- - com.google.gwt.user.client.Timer

-     public abstract class Timer
      extends java.lang.Object

  A simplified, browser-safe timer class. This class serves the same purpose as java.util.Timer, but is simplified because of the single-threaded environment.

  To schedule a timer, simply create a subclass of it (overriding `run()`) and call `schedule(int)` or `scheduleRepeating(int)`.

  NOTE: If you are using a timer to schedule a UI animation, use `AnimationScheduler` instead. The browser can optimize your animation for maximum performance.

  ### Example

  >     public class TimerExample implements EntryPoint, ClickHandler {

  >       public void onModuleLoad() {
  >         Button b = new Button("Click and wait 5 seconds");
  >         b.addClickHandler(this);

  >         RootPanel.get().add(b);
  >       }

  >       public void onClick(ClickEvent event) {
  >         // Create a new timer that calls Window.alert().
  >         Timer t = new Timer() {
  >           @Override
  >           public void run() {
  >             Window.alert("Nifty, eh?");
  >           }
  >         };

  >         // Schedule the timer to run once in 5 seconds.
  >         t.schedule(5000);
  >       }
  >     }

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Timer()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `cancel()` Cancels this timer.
    `(package private) void` | `fire(int scheduleCancelCounter)`
    `boolean` | `isRunning()` Returns `true` if the timer is running.
    `abstract void` | `run()` This method will be called when a timer fires.
    `void` | `schedule(int delayMillis)` Schedules a timer to elapse in the future.
    `void` | `scheduleRepeating(int periodMillis)` Schedules a timer that elapses repeatedly.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Timer

          public Timer()

  - ### Method Detail

    - #### isRunning

          public final boolean isRunning()

      Returns `true` if the timer is running. Timer is running if and only if it is scheduled but it is not expired or cancelled.

    - #### cancel

          public void cancel()

      Cancels this timer. If the timer is not running, this is a no-op.

    - #### run

          public abstract void run()

      This method will be called when a timer fires. Override it to implement the timer's logic.

    - #### schedule

          public void schedule(int delayMillis)

      Schedules a timer to elapse in the future. If the timer is already running then it will be first canceled before re-scheduling.
      Parameters:
        `delayMillis` - how long to wait before the timer elapses, in milliseconds

    - #### scheduleRepeating

          public void scheduleRepeating(int periodMillis)

      Schedules a timer that elapses repeatedly. If the timer is already running then it will be first canceled before re-scheduling.
      Parameters:
        `periodMillis` - how long to wait before the timer elapses, in milliseconds, between each repetition

    - #### fire

          final void fire(int scheduleCancelCounter)