подробности об уничтожении и восстановлении компонентов приложения Android

Может ли кто-нибудь подтолкнуть меня к предоставлению какой-либо конкретной, заслуживающей доверия (и желательно краткой) информации о следующем:

  1. Порядок, в котором компоненты уничтожаются и (где применимо) воссоздаются системой (фрагмент, действие, потоки действий / асинхронные задачи / таймеры, статические данные (когда классы выгружаются?), потоки / асинхронные задачи / таймеры в другие классы, хост TabActivity, ActivityGroup, связанные локальные службы, приложение, процесс) как когда приложение находится в фоновом режиме, так и на переднем плане.
    В каких точках разрушение может остановиться (какие состояния могут возникнуть при возврате в приложение - например, «все, включая объект приложения , уничтожено, процесс активен»?

  2. Возможно ли (без модификации Android) программно вызвать такое же разрушение , чтобы оно было неотличимо от того, когда это делает система, или это отдельный механизм, необходимый для тех случаев, когда мы сами решаем свободная память (запускается onLowMemory)?

  3. Шаги надежного воспроизведения всех сценариев из 1) (подойдет ли junit.framework? Я не исследовал это)?

  4. " Если пользователь оставляет задачу на долгое время система очищает задачу от всех действий, кроме корневой активности. Когда пользователь снова возвращается к задаче, восстанавливается только основная активность ": это помимо жизненного цикла / уничтожения процесса / компонента, или привязано к нему?

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

[EDIT] Во избежание недоразумений: я спрашиваю, что Android уничтожает компоненты, чтобы освободить память, в обход Activity.onDestroy.
Когда я переведу приложение в фоновый режим и вернусь позже, произойдет одна из следующих последовательностей:

  • onPause, onStop, onRestart, onStart, onResume
  • onPause, onStop, Application.onCreate , onCreate (notNull), onStart, onResume

[EDIT2] Баунти началось.Нужна достоверная информация о: действиях, фрагментах, приложении, связанных (потенциально удаленных) службах, процессе.
Сценарии частичного / полного уничтожения. См. 1-й пункт.

20
задан kaay 6 February 2013 в 16:36
поделиться