java.lang.Object
java.util.TimerTask
- 所有已实现的接口:
-
Runnable
可以被
Timer
安排一次或重复执行的任务。
计时器任务不可重用。一旦任务被安排在Timer
上执行或被取消,后续尝试再次安排执行将抛出IllegalStateException
异常。
- 自JDK版本:
- 1.3
-
Constructor Details
-
TimerTask
protected TimerTask()创建一个新的计时器任务。
-
-
Method Details
-
run
public abstract void run()这个计时器任务要执行的操作。 -
cancel
public boolean cancel()取消这个计时器任务。如果任务已被安排一次性执行但尚未运行,或尚未被安排,它将永远不会运行。如果任务已被安排重复执行,它将不会再次运行。(如果在调用时任务正在运行,则任务将运行完成,但不会再次运行。)请注意,从重复计时器任务的
run
方法内调用此方法绝对保证计时器任务不会再次运行。此方法可以重复调用;第二次及后续调用不会产生任何效果。
- 返回值:
-
如果此任务已被安排一次性执行但尚未运行,或此任务已被安排重复执行,则返回true。如果任务已被安排一次性执行并已经运行,或者任务从未被安排,或者任务已被取消,则返回false。(粗略地说,此方法返回
true
如果它阻止一个或多个预定执行的发生。)
-
scheduledExecutionTime
public long scheduledExecutionTime()返回此任务最近一次实际执行的预定执行时间。(如果在任务执行过程中调用此方法,则返回值是正在进行的任务执行的预定执行时间。)通常从任务的run方法内调用此方法,以确定当前任务执行是否足够及时以执行预定的活动:
通常不与固定延迟执行重复任务一起使用此方法,因为它们的预定执行时间允许随时间漂移,因此并不是非常重要。public void run() { if (System.currentTimeMillis() - scheduledExecutionTime() >= MAX_TARDINESS) return; // 太晚了;跳过此次执行。 // 执行任务 }
- 返回值:
- 此任务最近一次执行被预定的时间,以Date.getTime()返回的格式。如果任务尚未开始其第一次执行,则返回值未定义。
- 参见:
-