Зачем использовать onDestroy (), если он не гарантированно называется?

Согласно жизненному циклу активности Android, единственный вызываемый вызов, который должен быть вызван (если активность когда-либо покидает состояние Running, как правило, ожидается) является onPause() .

Поэтому я должен предположить, что существуют сценарии, в которых имеет смысл реализовать onStop() и onDestroy() хотя на самом деле их не гарантируют .

Я понимаю, что onStop() должен быть реализован, когда возможно, что действие вернется в состояние Running через состояние Stopped (почему бы ему это сделать, а не возвращать напрямую – это другой вопрос).

Но потребность в onDestroy() , когда я могу поместить все очистку / сохранение состояния в onPause() , мне непонятно.

Можете ли вы описать ситуацию с реальным приложением (т. onDestroy() Не аналогию с вождением автомобиля и т. Д.), В которой было бы целесообразно реализовать onDestroy() ?

onDestroy будет вызываться, если вы явно вызываете finish (); сам.

Основной вид активности вызывает startActivityForResult на активность карты.

Активность карты с помощью LocationListener, пользователь нажимает на карту и выбирает местный ресторан.

Затем эта активность настраивает некоторые дополнительные функции, которые будут отправлены обратно на ваш основной вид деятельности, затем явным образом вызывается finish (); на себе и в onDestroy убивает LocationListener и другие переменные, которые вы вызывали.

Просто нашел это в документах

onDestroy () = Последний звонок, который вы получаете до того, как ваша деятельность будет уничтожена. Это может произойти либо потому, что активность заканчивается (кто-то называется finish () на нем, либо потому, что система временно уничтожает этот экземпляр активности для экономии места. Вы можете различать эти два сценария с методом isFinishing ().

Можете ли вы описать ситуацию с реальным приложением (т. Е. Не аналогию с вождением автомобиля и т. Д.), В которой было бы целесообразно реализовать onDestroy ()?

Когда вы хотите зафиксировать изменение конфигурации. Это все в SDK: http://developer.android.com/reference/android/app/Activity.html

  • Запуск пользовательского приложения для Android от браузера android
  • Регистрация кнопки гарнитуры с помощью BroadcastReceiver на Android
  • Открытая камера Android от кнопки
  • В чем разница между системными приложениями и привилегированными приложениями на Android?
  • Автономный режим для Android-приложения с использованием карт google api
  • Android Studio «Структура проекта» не подходит должным образом
  • андроидная круглая галерея?
  • ListView с CHOICE_MODE_MULTIPLE с использованием CheckedText в пользовательском представлении
  • Как отличается атрибут android: onClick XML от setOnClickListener?
  • Как разместить RecyclerView внутри NestedScrollView?
  • Как работают рендеринги MPAndroidChart и как я могу написать собственный рендер?
  • Interesting Posts

    Имеется ли наблюдение за ключевыми значениями (KVO) в Swift?

    $ http-запрос не отправляет куки-файлы в угловой CORS

    Как я могу выполнить модульные функции void?

    Виртуальный ящик, подключающийся к другой сети на хосте и гостевой

    Сервер WAMP не будет работать

    Как найти серийный номер USB-накопителя?

    Может ли 32-разрядная ОС работать в 64-битном процессоре?

    Почему невозможно, не пытаясь выполнить ввод-вывод, обнаружить, что TCP-сокет был изящно закрыт одноранговым узлом?

    JSF + PrimeFaces: атрибут `update` не обновляет компонент

    Создание локального DNS-домена для разработки

    Существуют ли отдельные процессоры для серверов?

    Отключить IPv6-адрес IPv6-autoconf (MAC-based) без отключения адресов конфиденциальности?

    Исключение точки останова в Xcode

    Как я могу заставить свои домашние машины подключаться друг к другу через имя хоста?

    как установить заголовок без кэша весной mvc 3 по annotations

    Давайте будем гением компьютера.