如何在android中调度固定速率后修改java定时器间隔?

时间:2011-09-29 06:05:02

标签: android service timer

我有一个有一个Timer的服务。我在timer.scheduleAtFixedRate()回调方法中调用onStart()。但我必须根据变量的值改变定时器间隔。我发现计时器没有改变其间隔的功能。所以我想取消计时器并在满足条件时重新安排。但是我在timerTask中检查条件。因此,当我尝试取消TimerTask中的计时器时,它会抛出IllegalStateException。任何人都可以给我一些解决方案吗?

2 个答案:

答案 0 :(得分:0)

计时器只能安排一次。如果在调用cancel()时没有发生IllegalStateException,但是当您尝试重新安排计时器时,只需重新安排计时器,然后安排它。否则,我不确定。

答案 1 :(得分:0)

Netiher Timer.cancel()TimerTask.cancel()抛出IllegalStateException。当您尝试在已取消的Timer.

上安排任务时,会抛出此异常

解决方案:不要取消Timer;取消TimerTask