Pause and start a timer task in Java
Description
The following code shows how to pause and start a timer task.
Example
/*from www . j av a 2 s .com*/
import java.util.Timer;
import java.util.TimerTask;
class MyTask extends TimerTask {
int counter;
public MyTask() {
counter = 0;
}
public void run() {
counter++;
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");
task.cancel();
}
public static void main(String[] args) {
Main phone = new Main();
phone.startRinging();
try {
System.out.println("started running...");
Thread.sleep(20000);
} catch (InterruptedException e) {
}
phone.doIt();
}
}
The code above generates the following result.