
我不知道发生了什么错误……我无法在我的服务中启动计时器.遵循代码
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()行时,我得到以下异常
03-03 23:32:14.851: E/AndroIDRuntime(6083):
java.lang.RuntimeException: Unable to start service
mt.androID.app.BkgService@40544838 with Intent {
cmp=mt.androID.app/.BkgService }: java.lang.IllegalStateException:
Timer was canceled
如果有人可以对此有所了解,我将非常感激…
解决方法:
从Javadoc for Timer.cancel():
Once a timer has been terminated, its execution thread terminates gracefully, and no more tasks may be scheduled on it.
从Javadoc for Timer.scheduleAtFixedrate():
Throws: IllegalStateException – if task was already scheduled or cancelled, timer was cancelled, or timer thread terminated.
Timer立即被取消:您需要创建一个新实例:
private voID StartServUpdateTask() { if(ServUpdTimer != null) { ServUpdTimer.cancel(); } ServUpdTimer = new Timer(); ...} 总结 以上是内存溢出为你收集整理的java – 无法在android中的服务中启动计时器全部内容,希望文章能够帮你解决java – 无法在android中的服务中启动计时器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)