模块  java.base
软件包  java.util

Class TimerTask

  • 实现的所有接口
    Runnable

    public abstract class TimerTaskextends Objectimplements 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
      • scheduledExecutionTime

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

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

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