<分区>
我的服务有一个定时器。我在 onStart()
回调方法中调用了 timer.scheduleAtFixedRate()
。但是我必须根据变量的值来改变定时器间隔。我发现定时器没有改变其间隔的功能。所以我想取消计时器并在满足该条件时重新安排。但我正在 timerTask 本身检查条件。因此,当我尝试取消 TimerTask 中的计时器时,它会抛出 IllegalStateException
。谁能给我一些解决方案?
<分区>
我的服务有一个定时器。我在 onStart()
回调方法中调用了 timer.scheduleAtFixedRate()
。但是我必须根据变量的值来改变定时器间隔。我发现定时器没有改变其间隔的功能。所以我想取消计时器并在满足该条件时重新安排。但我正在 timerTask 本身检查条件。因此,当我尝试取消 TimerTask 中的计时器时,它会抛出 IllegalStateException
。谁能给我一些解决方案?
最佳答案
一个定时器只能被调度一次。如果在您调用 cancel() 时 IllegalStateException 没有发生,但是当您尝试重新安排计时器时,只需重新实例化计时器然后安排它。否则,我不确定。
关于android - 在android中以固定速率安排java定时器间隔后如何修改它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7593134/