实现定时器这个功能,其实还是跟线程有关系的。首先,先來說說定時器的类 java.util.Timer.引类的时候一定要注意.Timer有三个不同的包,别引错了.
首先要用这个类的话 当然是要先new这个类出来,它的构造器是可以带参的(boolean类型的参数).
例如 new Timer(false),意思是说它是在后台执行的,只是不给我们展示,最简单的就是说当你在该定时器中用了打印的方法,也不会再控制台打印东西,但是它确实执行了.
同理 new Timer(true) 相反, Timer类默认的是false.
在Timerl类中有个 schedule的方法 schedule(TimerTask task, Date firstTime, long period)
;这个方法是该类中最核心的方法,第一个参数就是指要执行的线程类,第二个参数是指几秒后执行此定时器方法,第三个参数就是循环调用的时间了(单位都是毫秒哦).
要注意 imerTask task这个类需要继承TimerTask这个类,并且实现run方法;
一般我们可以采用匿名内部类的方法来调用:如
Timer timer = new Timer();
timer.schedule(new TimerTask(){
int index =0;
@override
public void run(){
index++;
system.out.println("currentIndex="+index);
}
},3000,1000);
如果要做成北京时间那种计时器只需要run方法执行system.out.println(new Date().getLocalString());
Timer类还有一个cancel()的方法;意思就是终止此计时器.