Pause and start a timer task : Timer « Development « Java Tutorial

import java.util.Timer;
import java.util.TimerTask;

class MyTask extends TimerTask {
  int counter;

  public MyTask() {
    counter = 0;
  public void run() {
    System.out.println("Ring " + counter);
  public int getCount() {
    return counter;

public class Main {
  private boolean running;
  private MyTask task;
  private Timer timer;
  public Main() {
    timer = new Timer(true);

  public boolean isRinging() {
    return running;

  public void startRinging() {
    running = true;
    task = new MyTask();
    timer.scheduleAtFixedRate(task, 0, 3000);

  public void doIt() {
    running = false;
    System.out.println(task.getCount() + " times");

  public static void main(String[] args) {
    Main phone = new Main();
    try {
      System.out.println("started running...");
    } catch (InterruptedException e) {

6.18.1.Using Timers
6.18.2.Demonstrate Timer and TimerTask.
6.18.3.Timer and TimerTask Classes
6.18.4.Pause and start a timer task
6.18.5.Create a Timer object
6.18.6.Swing also provide a Timer class. A Timer object will send an ActionEvent to the registered ActionListener.
6.18.7.Create a scheduled task using timer
6.18.8.Schedule a task by using Timer and TimerTask.
6.18.9.Scheduling a Timer Task to Run Repeatedly
6.18.10.extends TimerTask to create your own task
6.18.11.Your own timer
6.18.12.Class encapsulating timer functionality