Я пытался научиться точно, когда метод onDestroy вызывается для активности, но я прочитал некоторую запутанную и противоречивую информацию. В общем, мой вопрос: при каких обстоятельствах метод onDestroy фактически вызвал активность? Более конкретно, если у меня есть два действия, активность A и активность B, если выполняется действие A, и я создаю намерение и переключаюсь на активность B, является ли действие A остановлено или оно уничтожено?onStop vs onDestroy
ответ
Как говорится в официальном documentation:
onDestroy()
Последний вызов появляется перед вашей деятельности будет уничтожен. Это может произойти либо из-за завершения операции (кто-то назвал finish() на ней, либо потому, что система временно уничтожает этот экземпляр активности для экономии места. Вы можете различать эти два сценария с методом isFinishing().
В вашем примере активность A останавливается и может быть уничтожен системой
Примечание на
documentation
ссылке выше:
... не рассчитывать на [onDestroy()
] называют в качестве места для сохранения данных ... [см.] либоonPause()
, либоonSaveInstanceState(Bundle)
.
Активность может не были остановлены, если система не должна восстанавливать память для другой задачи/процесса, она должна находиться в состоянии паузы в целом. – whoami
OnDestroy будет вызываться непосредственно из любого вызова до конца() в onCreate, пропуская onStop. onDestroy можно оставить после убийства, когда onStop вернется. Начиная с Honeycomb, приложение не находится в состоянии killable, пока не вернется его onStop(); pre-honeycomb onPause - это убиваемое состояние. –
onDestroy()
вызывается всякий раз:
- Пользователь берет свою деятельность с экрана «Недавние приложения».
- Пользователь извлекает активность из экрана «последние приложения».
onStop()
вызывается всякий раз:
- пользователь покидает текущую деятельность.
Итак, в вашем примере, когда пользователь запускает Activity B, Activity A называется onStop()
.
EDIT: Метод onDestroy()
не всегда вызывается, в соответствии с документацией. onStop()
всегда вызывается, поэтому переместите код, который вы явно должны сделать до того, как действие перестанет работать.
Надеется, что это помогло: D
Не совсем.Это * возможности *, но нет гарантии, что onStop() или onDestroy() будут вызываться всегда. –
@ChrisStratton Если вы используете '@ Override' перед этим методом, он гарантирует запуск кода в этом конкретном методе, в этом случае' onStop() 'и' onDestroy() ' –
Нет, это не так. См. Документацию. Система может просто просто убить процесс, не утруждая себя вызовами этих методов. Как правило, они будут называть их, но документы говорят, что это бесплатно. –
- 1. onPause, onStop, onDestroy не останавливает таймер
- 2. Xamarin: OnStop, OnPause, OnDestroy никогда не назывался
- 3. android lifecycle onActivityResult vs onStop
- 4. Жизненный цикл Android-фрагментов onStop, onDestroyView, onDestroy и onDetach
- 5. Android: когда нужно отменить регистрацию слушателя - onStop() или onDestroy()
- 6. Будет onCreate вызван после onStop без onDestroy в середине
- 7. Android onStop/onDestroy - когда они могут быть использованы?
- 8. Когда нужно отменить регистрацию BroadcastReceiver? В onPause(), onDestroy() или onStop()?
- 9. Android-сценарий, где ondestroy() вызывается без onpause() или onstop()
- 10. onDestroy() способ не работает
- 11. Android Handle IntentService onStop event
- 12. Активность onDestroy confusion
- 13. Calling отделка() в OnStop()
- 14. onCreate() after finish() in onStop()
- 15. handle screen off, onStop
- 16. invoke IntentService from onDestroy
- 17. Использование onStop для развязывания службы
- 18. заменить фрагмент без onDestroy
- 19. Camera Intent call onDestroy()
- 20. Должен ли я отпустить просмотр-ссылки и т. Д. В onStop() или onDestroy()?
- 21. startActivityForResult не может хорошо работать, когда setResult помещается в OnPause(), OnStop() или OnDestroy()
- 22. Что означает «видимость» в жизненном цикле активности? onPause vs onStop?
- 23. Активность Android onDestroy() вызвана блокировкой экрана
- 24. Отличайте Android onDestroy события
- 25. Is onStop() вызывается в главной теме
- 26. Сохранять постоянные данные в onPause() или onStop()?
- 27. Сборщик мусора и обнуление ссылок в onDestroy
- 28. Служба onStop не останавливает службу.
- 29. Виды деятельности: onCreate() и onDestroy()
- 30. android onDestroy
Проверить Android Lifecyle на Android: http://stackoverflow.com/questions/8515936/android-activity-life-cycle-what-are-all-these-methods- для –
Возможный дубликат [Android onStop/onDestroy - когда они могут быть использованы?] (http://stackoverflow.com/questions/7236357/android-onstop-ondestroy-when-might-these-be-used) –