无法在android中的服务中启动计时器

Sur*_*dhi 3 java service android timer

我不知道发生了什么错误......我无法在我的服务中启动计时器.遵循代码

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我到达线路时,ServUpdTimer.scheduleAtFixedRate()我得到以下异常

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:计时器已取消

如果有人可以对此有所了解,我将非常感激...

hmj*_*mjd 14

来自Javadoc Timer.cancel():

一旦计时器终止,其执行线程将正常终止,并且不再可以在其上安排任何任务.

来自Javadoc Timer.scheduleAtFixedRate():

抛出:IllegalStateException - 如果已安排或取消任务,则取消计时器或终止计时器线程.

Timer被立即取消:你需要创建一个新的实例:

private void StartServUpdateTask() {

    if(ServUpdTimer != null)
    {
        ServUpdTimer.cancel();
    }
    ServUpdTimer = new Timer();

    ...
}
Run Code Online (Sandbox Code Playgroud)