Я читал здесь несколько сообщений об остановке таймера с помощью функции cancel(); метод, но независимо от того, как я пытаюсь, таймер продолжает работать в фоновом режиме после появления onPause().Android TimerTask не перестает использовать «timer.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);
}