关于Timer的用法

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执行一次。

猜你喜欢

转载自blog.csdn.net/d578332749/article/details/36056467