Module java.base
Package java.util

Class TimerTask

java.lang.Object
java.util.TimerTask
所有已实现的接口:
Runnable

public abstract class TimerTask extends Object implements Runnable
可以被Timer安排一次或重复执行的任务。

计时器任务不可重用。一旦任务被安排在Timer上执行或被取消,后续尝试再次安排执行将抛出IllegalStateException异常。

自JDK版本:
1.3
  • Constructor Details

    • TimerTask

      protected TimerTask()
      创建一个新的计时器任务。
  • Method Details

    • run

      public abstract void run()
      这个计时器任务要执行的操作。
      指定者:
      run 在接口 Runnable
    • 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()返回的格式。如果任务尚未开始其第一次执行,则返回值未定义。
      参见: