Как показано в Activity — документация по Android.
Активность имеет по существу четыре состояния:
1. Если действие находится на переднем плане экрана (в верхней части стека), оно активно или выполняется.
2. Если действие потеряло фокус, но все еще видно (то есть новое неполноразмерное или прозрачное действие находится поверх вашего действия), оно приостанавливается. Приостановленная активность полностью жива (она поддерживает всю информацию о состоянии и участниках и остается привязанной к оконному менеджеру), но может быть уничтожена системой в ситуациях с крайне нехваткой памяти.
3. Если действие полностью перекрывается другим действием, оно останавливается. Он по-прежнему сохраняет всю информацию о состоянии и членах, однако он больше не виден пользователю, поэтому его окно скрыто, и система часто уничтожает его, когда память требуется в другом месте.
4. Если действие приостановлено или остановлено, система может удалить это действие из памяти, попросив его завершить или просто уничтожив его процесс. Когда он снова отображается пользователю, его необходимо полностью перезапустить и восстановить в прежнее состояние.
Вот жизненный цикл действия, как показано в документации Android:
Есть три ключевых цикла, которые вам может быть интересно отслеживать в своей деятельности:
1. Весь жизненный цикл действия происходит между первым вызовом onCreate(Bundle) и последним вызовом onDestroy(). Активность выполнит всю настройку «глобального» состояния в onCreate() и освободит все оставшиеся ресурсы в onDestroy(). Например, если в фоновом режиме выполняется поток для загрузки данных из сети, он может создать этот поток в onCreate(), а затем остановить поток в onDestroy().
2. Видимое время жизни действия происходит между вызовом onStart() и до соответствующего вызова onStop(). В это время пользователь может видеть действие на экране, хотя оно может быть не на переднем плане и не взаимодействовать с пользователем. Между этими двумя методами вы можете поддерживать ресурсы, необходимые для отображения активности пользователю. Например, вы можете зарегистрировать BroadcastReceiver в onStart() для отслеживания изменений, влияющих на ваш пользовательский интерфейс, и отменить его регистрацию в onStop(), когда пользователь больше не видит то, что вы отображаете. Методы onStart() и onStop() можно вызывать несколько раз, так как активность становится видимой и скрытой для пользователя.
3. Время жизни активности переднего плана происходит между вызовом onResume() и до соответствующего вызова onPause(). В это время активность опережает все остальные активности и взаимодействует с пользователем. Активность может часто переходить между состояниями возобновления и паузы — например, когда устройство переходит в спящий режим, когда доставляется результат действия, когда доставляется новое намерение — поэтому код в этих методах должен быть довольно легким.
Вывод. Нельзя изменить порядок выполнения жизненного цикла.
person
rogcg
schedule
20.09.2011
onCreate
, оценить вonResume
и установить там значение false. - person nhaarman   schedule 20.09.2011