【发布时间】:2015-11-01 22:30:41
【问题描述】:
我正在使用计时器任务以固定的时间间隔执行 asynctask,时间为五分钟。但是计时器任务有时会开始行为不端,就像它没有得到一样 事实上,它在固定延迟时会在 10 分钟后执行两次,而不是每 5 分钟执行一次,为什么会这样?
这是我的代码
Timer timer = new Timer();
mytimer Mytimer = new mytimer();
timer.scheduleAtFixedRate(Mytimer, 300000, 300000);
class Mytimer extends TimerTask {
@Override
public void run() {
// TODO Auto-generated method stub
new DetailPosition().execute();
}
}
所以请帮帮我
【问题讨论】:
-
发布您的代码。对于初学者,您可能根本不应该使用
Timer。间隔做事的“Android方式”是通过Handler#postDelayed(...)。 -
@KevinKrumwiede 添加有问题的代码,请查看..
-
我喜欢“行为不端”这个词 :)
-
The docs 声明“必须在 UI 线程上创建任务实例”和“必须在 UI 线程上调用
execute(Params...)”。你违反了这两条规则。放弃Timer并使用Handler。