Простой вопрос: можете быть уверены, что finish()
позвонит onDestroy()
? Я не нашел подтверждения об этом.Android: закончится() ВСЕГДА вызовите onDestroy()?
ответ
Простой вопрос: можете ли вы быть уверены, что finish() будет вызывать onDestroy()?
Во-первых, этот ответ предполагает, что вы имеете в виду Activity
класса Android, и его метод finish()
и onDestroy()
метода жизненного цикла.
Во-вторых, это зависит от вашего определения «уверен»:
Ваш процесс может быть прекращен между
finish()
иonDestroy()
, по причинам, не зависящим от все, что запуская вызовfinish()
Изготовитель устройства или модем ROM мог бы внести некоторые вихревые изменения, которые нарушили бы соединение между
finish()
иonDestroy()
батарея может идти мертвым между
finish()
иonDestroy()
Etc.
В-третьих, finish()
не вызовonDestroy()
. Об этом можно узнать, прочитав the source code. finish()
обычно вызывает звонок до onDestroy()
.
Вообще говоря, finish()
в конечном итоге приведет к выходу onDestroy()
.
В рамках процесса можно ли опираться на onDestroy()? Скажем, у меня есть операции A, B, C, D, E и вы хотите закончить все, кроме E, тогда будут вызваны все методы onDestroy()? Состояние батареи и памяти здесь не учитывается. – Jenix
@Jenix: Если процесс не завершен, и вы не вызываете крах (необработанное исключение), то завершение операции приведет к вызову 'onDestroy()' для этой активности. – CommonsWare
Слишком быстро ха-ха. Спасибо! – Jenix
Нет, вы не можете быть уверены!
Calling finish() обычно запускает onDestroy() в соответствии с жизненным циклом активности, но вы не можете положиться на него. В частности, не для сохранения ваших данных. Documentation ясно говорит
do not count on this method being called as a place for saving data!
- 1. android onDestroy
- 2. Метод onDestroy() всегда называется только ОС?
- 3. startActivity всегда вызывая OnDestroy по первоначальной активности
- 4. Android stop thread onDestroy
- 5. Android: прослушивание активности onDestroy()
- 6. OnDestroy() в Android службы
- 7. Android OnDestroy Ошибка
- 8. Android onDestroy и финиш
- 9. Отличайте Android onDestroy события
- 10. Android OnDestroy обратного вызова
- 11. Служба Android не работает onDestroy
- 12. Android: stopService() не вызывает onDestroy()!
- 13. android weird onCreate/onDestroy balance
- 14. вызов onDestroy в android shutdown
- 15. Активность Android живет после OnDestroy
- 16. windows phone эквивалент ondestroy() android
- 17. Android: IntentService, используемый в onDestroy()
- 18. Намерение onDestroy(), всегда вызываемое с помощью кнопки «назад»
- 19. android onDestroy работает отлично только на vd
- 20. Деятельность onDestroy никогда не вызывается перед OutOfMemoryError
- 21. onDestroy, а не onPause
- 22. Android SDK. call onDestroy() непосредственно в скриптах
- 23. Регистрация «onDestroy event handler» с Android Activity
- 24. Активность Android onDestroy() вызвана блокировкой экрана
- 25. Альтернатива остановки обслуживания в onDestroy() деятельности Android
- 26. Перезагрузка Android. OnDestroy вызван до/while OnResume
- 27. Android: onCreate before OnDestroy между действиями
- 28. Как вызвать активность onDestroy() onBackPressed в android?
- 29. Android: порядок заявлений в методе onDestroy()
- 30. Иерархия автоматического просмотра Android и непоследовательность onDestroy?
http://stackoverflow.com/questions/10847526/what-exactly-activity-finish-method-is-doing#answer-10862977 – BackSlash
не всегда, о чем говорится в документации – Blackbelt
@blackbelt , не могли бы вы обратиться к этой конкретной документации? – Xander