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)