我有一个类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();
}
}
}
答案 0 :(得分:1)
timer.cancel()
将终止计时器,但启动任务将继续运行
如果任务已启动,则TimerTask.cancel()
API不起作用
你为什么不return;
退出run()
方法?
java.util.Timer
实例停止TimerTask
的解决方案是RuntimeException
,java.lang.InterruptedException
除外(此类型由TimerThread.mainLoop()
抓取)