Зачем использовать onDestroy (), если он не гарантированно называется?
Согласно жизненному циклу активности Android, единственный вызываемый вызов, который должен быть вызван (если активность когда-либо покидает состояние Running, как правило, ожидается) является onPause()
.
Поэтому я должен предположить, что существуют сценарии, в которых имеет смысл реализовать onStop()
и onDestroy()
хотя на самом деле их не гарантируют .
Я понимаю, что onStop()
должен быть реализован, когда возможно, что действие вернется в состояние Running через состояние Stopped (почему бы ему это сделать, а не возвращать напрямую – это другой вопрос).
- После обновления Android Studio до версии 1.3.0 я получаю «интеграция NDK устарела в текущем плагине». Ошибка
- Вызвать метод активности из fragmentа
- Обновить текст уведомления, а не целое уведомление
- NullPointerException: println нуждается в сообщении в android
- Обнаружение выбранного элемента (в ListView) порождало ContextMenu (Android)
Но потребность в onDestroy()
, когда я могу поместить все очистку / сохранение состояния в onPause()
, мне непонятно.
Можете ли вы описать ситуацию с реальным приложением (т. onDestroy()
Не аналогию с вождением автомобиля и т. Д.), В которой было бы целесообразно реализовать onDestroy()
?
- Как добавить новые контакты в android
- Программно обновлять виджет из активности / службы / получателя
- Как использовать акселерометр для измерения расстояния для разработки приложений Android
- Несовместимые плагины для android-apt после обновления до Android Studio 2.3
- Кнопка «Ручка» внутри строки в RecyclerView
- Не удалось выполнить инструменты \ android.bat: решение
- Android Studio не удалось найти версию, совместимую с com.android.support:appcompat-v7:+
- Как обрабатывать изменение ориентации экрана, когда диалог выполнения и фоновый stream активны?
onDestroy будет вызываться, если вы явно вызываете finish (); сам.
Основной вид активности вызывает startActivityForResult на активность карты.
Активность карты с помощью LocationListener, пользователь нажимает на карту и выбирает местный ресторан.
Затем эта активность настраивает некоторые дополнительные функции, которые будут отправлены обратно на ваш основной вид деятельности, затем явным образом вызывается finish (); на себе и в onDestroy убивает LocationListener и другие переменные, которые вы вызывали.
Просто нашел это в документах
onDestroy () = Последний звонок, который вы получаете до того, как ваша деятельность будет уничтожена. Это может произойти либо потому, что активность заканчивается (кто-то называется finish () на нем, либо потому, что система временно уничтожает этот экземпляр активности для экономии места. Вы можете различать эти два сценария с методом isFinishing ().
Можете ли вы описать ситуацию с реальным приложением (т. Е. Не аналогию с вождением автомобиля и т. Д.), В которой было бы целесообразно реализовать onDestroy ()?
Когда вы хотите зафиксировать изменение конфигурации. Это все в SDK: http://developer.android.com/reference/android/app/Activity.html