停止计划任务并重新计划它
在我的程序中,我需要在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