停止计划任务并重新计划它

在我的程序中,我需要在GUI中使用超时。 例如,用户开始使用GUI,超时开始couting。 当他到达某个阶段时,当前的超时将被丢弃并且新的启动。

我正在考虑使用Timer&TimerTask类以这种方式来完成它:

TimerTask1 - >做一些东西(包括定时器取消和清除)

TimerTask2 - >做另一个东西(包括定时器取消和清除)

定时器 - >两个任务的一个定时器,因为它们不会并行运行。

代码如下所示:

=== user starts using GUI at stage A ===

Timer.shedule(TimerTask1, neededAmountOfTime)

==after reaching stage B==

Timer.cancel()

Timer.purge()

Timer.shedule(TimerTask2, neededAmountOfTime)

==after reaching final stage C==

Timer.cancel()

Timer.purge()

它会按我的想法工作吗? 在阶段如果用户在分配的时间内未到达阶段B,则计划并触发TimerTask1。 如果他到达阶段B,则Timertask1被杀死,TimerTask2被安排。 如果用户在分配的时间内未达到阶段C,则触发TimerTask2。 如果用户在分配时间内到达阶段C,则触发TimerTasks的非触发。

我的想法是否正确?

编辑:

我尝试了上述方法。 当然取消定时器之前,我不得不在创建一个新的计划之前。 问题是,有时计时器工作,有时不工作。 有什么方法可以检查TimerTask是否在Timer上正确调度?

链接地址: http://www.djcxy.com/p/74909.html

上一篇: Stopping scheduled task and resheduling it

下一篇: How to cancel an already scheduled TimerTask?