无法在android中的服务中启动计时器
我不知道发生了什么事……我无法在我的服务中启动计时器。 遵循代码
public class BkgService extends Service{ private Timer ServUpdTimer = new Timer(); private static long TMR_INTERVAL = 10*60*1000; public void onCreate() { super.onCreate(); StartServUpdateTask(); } private void StartServUpdateTask() { if(ServUpdTimer != null) ServUpdTimer.cancel(); ServUpdTimer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { } }, 0, TMR_INTERVAL); } }
但当我到达ServUpdTimer.scheduleAtFixedRate()
我得到以下exception
03-03 23:32:14.851:E / AndroidRuntime(6083):java.lang.RuntimeException:无法使用Intent {cmp = mt.android.app / .BkgService}启动服务mt.android.app.BkgService@40544838: java.lang.IllegalStateException:计时器已取消
如果有人可以对此有所了解,我将非常感激…
从Javadoc for Timer.cancel()
:
一旦计时器终止,其执行线程将正常终止,并且不再可以在其上安排任何任务。
从Javadoc for Timer.scheduleAtFixedRate()
:
抛出:IllegalStateException – 如果已安排或取消任务,则取消计时器或终止计时器线程。
Timer
立即被取消:您需要创建一个新实例:
private void StartServUpdateTask() { if(ServUpdTimer != null) { ServUpdTimer.cancel(); } ServUpdTimer = new Timer(); ... }