Timer是用来进行延时操作的,此方法较适用于计时简单且不需要多线程的程序,下面是一段示例代码:
public void control(){
timer = new Timer();
timer.schedule(new MyTask4(), 0);
timer.schedule(new MyTask3(), greenTime+500);
timer.schedule(new MyTask2(), greenTime+1000);
timer.schedule(new MyTask3(), greenTime+1500);
timer.schedule(new MyTask2(), greenTime+2000);
timer.schedule(new MyTask3(), greenTime+2500);
timer.schedule(new MyTask1(), greenTime+redTime+1500);
}
class MyTask1 extends TimerTask {
@Override
public void run() {
lights.turnRed();
timer.cancel();
}
}
class MyTask2 extends TimerTask {
@Override
public void run() {
LightsControl.this.lights.goOut();
}
}
class MyTask3 extends TimerTask {
@Override
public void run() {
LightsControl.this.lights.turnYello();
}
}
class MyTask4 extends TimerTask {
@Override
public void run() {
LightsControl.this.lights.turnGreen();
}
}
此处需要注意的是,Timer的计时是从调用该方法开始计时,里面所有的timer都会开始计时。
Timer还有其它用法,例如:timer.schedule(new MyTask(), 1000, 5000);
意为1s后执行该任务,每5s执行一次。