Android 安卓TimerTask赢得';不要停止使用;timer.cancel()”;,暂停时
我在这里读了很多关于使用cancel()停止计时器的帖子;方法,但无论我如何尝试,在onPause()发生后,计时器仍在后台运行 (请注意,我正在计时器内执行AsyncTask,我知道它只能运行一次,但我担心如果我在主线程上运行AsyncTask,它将挂起我的主活动。) 那么,为什么计时器不会在Pause()上停止Android 安卓TimerTask赢得';不要停止使用;timer.cancel()”;,暂停时,android,timer,android-asynctask,onresume,onpause,Android,Timer,Android Asynctask,Onresume,Onpause,我在这里读了很多关于使用cancel()停止计时器的帖子;方法,但无论我如何尝试,在onPause()发生后,计时器仍在后台运行 (请注意,我正在计时器内执行AsyncTask,我知道它只能运行一次,但我担心如果我在主线程上运行AsyncTask,它将挂起我的主活动。) 那么,为什么计时器不会在Pause()上停止 取消计时器时,任务已开始执行。因此,即使计时器被取消,异步任务也会在后台执行 没有理想的方法来处理异步任务的取消。您可能需要检查以下问题: } //end on create
取消计时器时,
任务
已开始执行。因此,即使计时器被取消,异步任务也会在后台执行
没有理想的方法来处理异步任务的取消。您可能需要检查以下问题:
} //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);
}