2011-09-29 50 views
2

我有一個有一個定時器的服務。我在onStart()回調方法中調用timer.scheduleAtFixedRate()。但是我必須根據變量的值來改變定時器間隔。我沒有發現定時器改變其間隔的功能。所以我想取消定時器並在滿足條件時重新計劃。但我正在用timerTask本身檢查條件。所以當我試圖取消TimerTask中的計時器時,它會拋出IllegalStateException。任何人都可以給我一些解決方案嗎?如何在android中調度固定速率後修改java定時器間隔?

回答

-1

計時器只能計劃一次。如果調用cancel()時沒有發生IllegalStateException,但當您嘗試重新計劃計時器時,只需重新實例化計時器,然後對其進行計劃即可。否則,我不確定。

+0

「計時器」根本沒有安排,更不用說重新安排,但「TimerTask」可以隨時重新安排。這似乎只是猜測。 – EJP

0

Netiher Timer.cancel()TimerTask.cancel()拋出IllegalStateException。當您嘗試安排上取消Timer.

解任務時引發:不要取消Timer;取消TimerTask

相關問題