вызов метода при выходе из программы - onDestroy не надежный - PullRequest
1 голос
/ 08 января 2011

Я хочу выполнить некоторые функции при выходе из программы, нажав кнопку «Назад». Теперь это делается с помощью onDestroy (), который работает во всех случаях, кроме одного. При возврате из другого действия в некоторых случаях при выходе из программы onDestroy не вызывается.

Я знаю, что теоретически onDestroy следует вызывать только тогда, когда Android закрывает приложение из-за нехватки памяти, но для меня onDestroy работает всегда и только в особом случае - нет.

Использование onPause или onStop не работает, потому что я хочу вызывать функцию только при выходе из программы, но не при вызове другого действия.

Так является ли последний способ отловить нажатие кнопки "назад" и вызвать функцию там? Или есть другое решение?

1 Ответ

10 голосов
/ 08 января 2011

Тактически используйте onBackPressed().

Стратегически пересмотрите свою архитектуру.Хорошо написанное действие не должно волновать, вызывается ли onDestroy(), так как оно гарантированно НЕ вызывается всегда.Например, Android может прервать ваш процесс в любое время (например, из-за крайне низкого уровня памяти).Тот факт, что вам нужно onDestroy() для надежной работы, предполагает наличие проблем, которые необходимо решить.

...