如果任务在另一个类中运行,则停止计时器任务

时间:2016-05-28 07:54:17

标签: java timer

我有一个类Sample在另一个类中调用一个timer任务如何在执行两次定时器后停止计时器?这就是我想要实现的目标:

class Sample extends Someotherclass
public static void main()
{
    public void initiate() {
        Timer timer = new Timer();
        timer.schedule(new Timer(), 0, 10000);
    }
}

class Timer extends TimerTask {
    private static int count = 0;
    public void run() {
        System.out.println("Hello!");
        count++;
        if(count>1)
        {
            //stop the timer schedule
            // timer.cancel();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

timer.cancel()将终止计时器,但启动任务将继续运行 如果任务已启动,则TimerTask.cancel() API不起作用 你为什么不return;退出run()方法?

更新

java.util.Timer实例停止TimerTask的解决方案是RuntimeExceptionjava.lang.InterruptedException除外(此类型由TimerThread.mainLoop()抓取)