【发布时间】:2014-07-29 06:57:56
【问题描述】:
我在这里阅读了许多关于使用 cancel(); 停止计时器的帖子;方法,但是无论我怎么尝试,在 onPause() 发生后,计时器都会在后台继续运行。
(请注意,我正在计时器内执行 AsyncTask,我知道它只运行一次,但我担心如果我在主线程上运行 AsyncTask,它会挂起我的主要活动。)
那么为什么计时器不会停止 onPause() 呢?
} //end on create
@Override
protected void onPause() {
super.onPause();
this.timer.cancel();
this.timer.purge();
}
@Override
protected void onResume() {
super.onResume();
callAsynchronousTask();
}
public void callAsynchronousTask() {
final Handler handler = new Handler();
timer = new Timer();
TimerTask doAsynchronousTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
try {
MyTask task = new MyTask();
task.execute("Param 1", "Param 2", "Param 3");
} catch (Exception e) {
}
}
});
}
};
timer.schedule(doAsynchronousTask, 0, 2000);
}
【问题讨论】:
标签: android timer android-asynctask onresume onpause