Intereting Posts
ANDROID – определение цвета с использованием openCV – как? Android: Autoscrolling HorizontalScrollView Отправьте SMS-сообщение с помощью нестандартного SMS-приложения на Android 4.4 Сравните сертификаты SSL через подпись: достаточно ли этого? IOS, альтернативный UUID андроида (long mostSigBits, long minimumSigBits) ADB не признает Nexus 4 – больше советов Рассчитать размер изображения при использовании setCompoundDrawables для EditText Как сериализовать двойное значение с помощью kSOAP в Android Таймер рисования прямоугольника Android с анимацией Как настроить панель контекстного действия с помощью appCompat в материальном дизайне Пользовательский конвертер для подкласса с Moshi Android: добавление библиотеки Android в качестве зависимости от maven в проекте Android: CellID недоступен для всех операторов? Чтение писем Gmail с помощью SDK для Android Возобновить загрузку с Android-менеджера загрузки при неудачной загрузке

Не занимайтесь деятельностью – для чего?

Название довольно понятно. Я понимаю, что делает этот вариант разработчика.

То, что я не понимаю , следующее:

  1. Почему этот вариант был введен, в первую очередь?
  2. После того, как все изменения, которые эта структура просматривала на протяжении многих лет, все еще полезна?

Я очень хочу узнать причины этого варианта.

Я считаю, что это функция, используемая для цели отладки.

Из документа Титана :

Не выполняйте действия в меню «Параметры разработчика». Когда эта опция включена, ОС Android уничтожит действие сразу же после его остановки. Он призван помочь разработчикам отладить свои приложения. Например, он может имитировать случай, когда Android убьет активность в фоновом режиме из-за давления памяти. При нормальном использовании не рекомендуется включать эту функцию, поскольку это может привести к неожиданным проблемам в приложениях, таким как зависания, принудительное закрытие и перезагрузка.

Похоже, в основном это помогает тестировать детерминистически, как работает ваше приложение, когда ОС отключает его по какой-либо причине (вне памяти и т. Д.).

Итак, это ответило на пункт 1. Пункт 2: Да, я думаю 🙂

EDIT : дальнейшие ссылки

  • On SO Как узнать, что в ICS включено «Не сохранять действия»?
  • Интересная тема об этом на androidcentral (ответ от MagouyaWare)

Рамка Android может уничтожить вашу деятельность в любое время, когда она находится в фоновом режиме или в фоновом режиме, и вы должны написать свои действия, чтобы они правильно себя вести, когда это происходит. То, что это влечет за собой, зависит от того, что делает деятельность, но обычно включает в себя реализацию onSaveInstanceState(...) и восстановление любого предыдущего состояния в onCreate(...) .

Вариант разработчика «не сохраняйте действия» просто изменяет поведение структуры, поэтому он всегда будет уничтожать вашу деятельность, когда она войдет в фоновый или backstack. Это позволяет вам проверить, как ваша деятельность реагирует на то, что обычно является редким явлением.

Ссылка, приведенная в другом ответе, гласит:

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

Это неверно. Если ваши действия написаны правильно, единственным эффектом включения «не продолжать деятельность» должно быть (возможно) немного выше потребление батареи и ЦП от постоянной экономии и восстановления постоянного состояния. Любые приложения, которые демонстрируют «неожиданные проблемы» или принудительно закрываются, когда этот параметр включен, прерываются и должны быть исправлены. Как разработчик, я обычно оставляю «не занимаюсь деятельностью» все время. Я видел множество багги-приложений, даже некоторых из них. Но он никогда не вызывал перезагрузки, и я не думаю, что это возможно.