Module  java.base
软件包  java.util

Class TimerTask

  • All Implemented Interfaces:
    Runnable


    public abstract class TimerTask
    extends Object
    implements Runnable
    可以由Timer进行一次性或重复执行的任务

    计时器任务不可重用。 一旦一个任务被安排执行在一个Timer或取消,随后的尝试安排它执行将抛出IllegalStateException

    从以下版本开始:
    1.3
    • 构造方法详细信息

      • TimerTask

        protected TimerTask​()
        创建一个新的计时器任务。
    • 方法详细信息

      • run

        public abstract void run​()
        该定时器任务要执行的操作。
        Specified by:
        run在接口 Runnable
        另请参见:
        Thread.run()
      • cancel

        public boolean cancel​()
        取消此计时器任务。 如果任务已安排一次执行,尚未运行或尚未安排,则该任务将永远不会运行。 如果任务已被安排重复执行,它将永远不会再运行。 (如果此呼叫发生时任务正在运行,则任务将运行到完成,但不会再运行。)

        请注意,在重复定时器任务的run方法内调用此方法绝对保证计时器任务不会再次运行。

        这个方法可以重复调用; 第二个和以后的呼叫没有任何效果。

        结果
        如果此任务计划执行一次,并且尚未运行,或者该任务计划重复执行,则为true。 如果任务计划执行一次并已经运行,或者任务从未安排,或任务已被取消,则返回false。 true地说,如果它阻止一次或多次安排的执行发生,此方法返回true
      • scheduledExecutionTime

        public long scheduledExecutionTime​()
        返回此任务最近实际执行的预定执行时间。 (如果在执行任务时调用此方法,则返回值是执行正在执行的任务的计划执行时间。)

        通常从任务的运行方法中调用此方法,以确定当前执行的任务是否足够及时,以保证执行计划的活动:

           public void run() { if (System.currentTimeMillis() - scheduledExecutionTime() >= MAX_TARDINESS) return; // Too late; skip this execution. // Perform the task }  
        该方法通常固定延迟执行重复任务结合使用,因为它们的调度执行时间被允许随时间漂移,因此不是非常重要的。
        结果
        以Date.getTime()返回的格式调度最近执行此任务的时间。 如果任务尚未开始执行,返回值是未定义的。
        另请参见:
        Date.getTime()