我有一个有一个Timer的服务。我在timer.scheduleAtFixedRate()
回调方法中调用onStart()
。但我必须根据变量的值改变定时器间隔。我发现计时器没有改变其间隔的功能。所以我想取消计时器并在满足条件时重新安排。但是我在timerTask中检查条件。因此,当我尝试取消TimerTask中的计时器时,它会抛出IllegalStateException
。任何人都可以给我一些解决方案吗?
答案 0 :(得分:0)
计时器只能安排一次。如果在调用cancel()时没有发生IllegalStateException,但是当您尝试重新安排计时器时,只需重新安排计时器,然后安排它。否则,我不确定。
答案 1 :(得分:0)
Netiher Timer.cancel()
和TimerTask.cancel()
抛出IllegalStateException
。当您尝试在已取消的Timer.
解决方案:不要取消Timer
;取消TimerTask
。