Timer 的 schedule()方法

1.timer.schedule(new MyTask(),long time1,long time2);

第一个参数是TimerTask类,使用者要继承该类,并实现run()方法,因为TimerTask类实现了Runnable接口。

第二个参数的意思是说,用户调用schedule()方法后,经过多长时间后执行run()方法。这个参数就是用户调用完schedule()方法到执行TimerTask的run()一共需要的执行时间。

第三个参数意思是,第一次调用之后,从第二次开始多长时间调用一次run()方法。

2.常见错误:写定时任务的时候,想当然的以为Timer.schedule(TimerTask task, longdelay)就是重复的执行task。程序运行后发现只运行了一次,总觉得是Task里面的低吗的问题。

仔细读api就会发现:

schedule(TimerTask task, long delay)的注释,意思是在延时delay毫秒后执行task,并没有重复执行。

schedule(TimerTask task, long delay, long period)的注释,大意是在执行delay毫秒后重复 的执行task,周期是period毫秒。可以重复执行

posted @ 2017-08-24 10:35  让学习如呼吸一般自然  阅读(965)  评论(0编辑  收藏  举报