Timer是用来进行延时操作的,此方法较适用于计时简单且不需要多线程的程序,下面是一段示例代码:
//定时执行
//注意:Timer的计时是从调用该方法开始计时,里面所有的schedule都会开始计时,而不是等待一个执行完毕后再开始计时下一个
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();
}
}
//循环执行,1s后执行该任务,每5s执行一次
timer.schedule(new MyTask(), 1000, 5000);