随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
声明:public abstract class TimerTask extends Object implements Runnable 由Timer 安排为一次执行或重复执行的任务。
只有一个构造方法:protected TimerTask() 创建一个新的计时器任务。
方法详解:
1、public abstract void run() 此计时器任务要执行的操作。
2、public boolean cancel()
取消此计时器任务。如果任务安排为一次执行且还未运行,或者尚未安排,则永远不会运行。如果任务安排为重复执行,则永远不会再运行。(如果发生此调用时任务正在运行,则任务将运行完,但永远不会再运行。)
注意,从重复的计时器任务的 run 方法中调用此方法绝对保证计时器任务不会再运行。
此方法可以反复调用;第二次和以后的调用无效。
返回: 如果此任务安排为一次执行且尚未运行,或者此任务安排为重复执行,则返回 true。如果此任务安排为一次执行且已经运行,或者此任务尚未安排,或者此任务已经取消,则返回 false。(一般来说,如果此方法不允许发生一个或多个已安排执行,则返回 true。)
3、public long scheduledExecutionTime()
返回此任务最近实际 执行的已安排 执行时间。(如果在任务执行过程中调用此方法,则返回值为此任务执行的已安排执行时间。)
通常从一个任务的 run 方法中调用此方法,以确定当前任务执行是否能充分及时地保证完成已安排活动:
public void run() {
if (System.currentTimeMillis() - scheduledExecutionTime() >=
MAX_TARDINESS)
return; // Too late; skip this execution.
// Perform the task
}
通常,此方法不 与固定延迟执行 的重复任务一起使用,因为其已安排执行时间允许随时间浮动,所以毫无意义。
返回: 最近发生此任务执行安排的时间,采用 Date.getTime() 返回的格式。如果任务已开始其首次执行,则返回值不确定。