Как я могу завершить работу с TimerTask после закрытия приложения? Сборщик мусора не работает должным образом или просто не хочет завершать какие-либо фоновые задачи или потоки.
Android TimerTask не завершается после закрытия приложения
Ответы (2)
Предполагая, что вы хотите остановить его, когда действие будет уничтожено:
@Override
protected void onDestroy()
{
super.onDestroy();
yourTimer.cancel();
}
Или, если вы хотите остановить его, когда ваша активность скрыта:
@Override
protected void onStop()
{
super.onStop();
yourTimer.cancel();
}
В соответствии с рабочим процессом действия выберите лучший метод, при котором ваш таймер должен быть отменен:
person
ToYonos
schedule
24.10.2014
Действительно, трудно сказать, когда он называется, но, в конце концов, он
- person ToYonos; 24.10.2014
именно в этом суть, я не хочу отменять свою фоновую задачу в методе активности, потому что она периодически обновляет данные, которые используются в разных действиях. Я просто хочу закончить свою задачу, когда приложение закрывается...
- person pumukel; 24.10.2014
Невозможно вызвать какое-либо действие при закрытии приложения.
- person ToYonos; 24.10.2014
Итак, невозможно иметь фоновый поток, который может работать за различными действиями и правильно закрываться? Итак, мне всегда нужно запускать и останавливать каждый раз, когда действие создается и останавливается?
- person pumukel; 24.10.2014
Вы должны сами управлять этой темой. Чего вы не можете сделать, так это остановить его в тот момент, когда Android убивает ваше приложение. Вы можете привязать окончание своего потока только к состоянию активности или чему-то, что вы можете предсказать.
- person ToYonos; 24.10.2014
Вы должны остановить любой поток/задачу в onDestroy() в своей деятельности. Кстати, вы не должны использовать TimerTask в Android. Проверьте этот вопрос SO: TimerTask vs Thread.sleep vs Handler postDelayed - наиболее точно вызывать функцию каждые N миллисекунд?
Чтобы обновить данные, вы можете сделать это в сервисе (и вы должны, а не в активности).
person
Jakub
schedule
24.10.2014
app was closing
... - person Selvin   schedule 24.10.2014