Хммм можно спросить, почему вы не хотите, чтобы сделать это в onStop
?
В любом случае, onStop
может не всегда вызываться в ситуациях с низкой памятью, а также onDestroy
, например, когда Android голодает за ресурсы и не может должным образом обработать действие.
Итак, - последний способ, которым вы гарантированно будете называться. А может быть, вы можете использовать его в сочетании с isFinishing()
, как объяснено в http://developer.android.com/reference/android/app/Activity.html#isFinishing%28%29
public boolean isFinishing()
Проверьте, есть ли эта деятельность находится в процессе отделки, либо потому, что вы назвали финиш() на нем или кто-то еще запросил , что он закончил. Это часто используется в onPause() для определения того, является ли операция просто приостановлена или полностью завершена.
Другой метод, который может быть ваш интерес, если вы изучаете альтернативы:
public void onWindowFocusChanged (boolean hasFocus)
Вызывается, когда текущее окно усилений деятельности или теряет фокус. Это лучший показатель того, является ли это действие видимым для пользователя. Реализация по умолчанию очищает состояние отслеживания ключей, поэтому всегда следует вызывать.
(собираюсь фон не должен означать, что пользователь закрыл приложение, но вы будете знать, если это может быть полезным для вас)
http://developer.android.com/reference/android/app/Activity .html # onStop() –