Timer是一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。实际上是个线程,定时调度所拥有的TimerTasks。
TimerTask是一个抽象类,它的子类由 Timer 安排为一次执行或重复执行的任务。实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内。
//time为Date类型:在指定时间执行一次 new Timer().schedule(new TimerTask() { @Override public void run() { if (true) { opt; } else { cancel(); } } }, time);
//firstTime为Date类型,period为Long类型 //从firstTime时刻开始,每隔period毫秒执行一次task new Timer().schedule(new TimerTask() { @Override public void run() { if () { opt; } else { cancel(); } } }, firstTime, period);
//delay为long类型,从现在起delay毫秒之后执行一次task(不周期) new Timer().schedule(new TimerTask() { @Override public void run() { if (true) { opt; } else { cancel(); } } }, delay);
//delay和period都为long类型 //从现在起delay毫秒之后,每period执行一次task(周期) new Timer().schedule(new TimerTask() { @Override public void run() { if (true) { opt; } else { cancel(); } } }, delay,period);