Каждое приложение, установленное на устройстве, работает в рамках его процесса.
Если войти в приложение в первый раз, следующая последовательность называется:
- Применение. onCreate()
- YourFirstActivity. onCreate() (при условии, что YourFirstActivity объявлен в AndroidManifest.xml)
- YourFirstAcitvity. onStart()
- YourFirstActivity. onResume()
При нажатии на кнопку Home, приложение переходит в фоновый режим и следующие методы обратного вызова называются:
- YourCurrentActivity. onPause()
- YourCurrentActivity. onSaveInstanceState() - этот вызов не указан точно, но вы можете предположить, что метод onStop() вызывается в большинстве случаев, который должен вызываться onSaveInstanceState().
- YourCurrentActivity. onStop();
В то время как приложение в фоновом режиме не указано, как долго он будет там.
Это зависит от системы, чтобы поддерживать ее в фоновом режиме.
Многие приложения, когда вы находитесь в фоновом режиме, выполняете периодические синхронные сообщения, запускаете запланированные службы или просто запускаете на переднем плане при запуске, и для этой цели ОС Android должна каким-то образом найти память для выполнения всей этой логики. Таким образом, если в требуемой памяти есть нехватка, то ОС убивает процессы (например, ваше приложение).
Таким образом, если вы спрячете свое приложение на фоне и щелкните по значку запуска приложения или сразу же вернетесь к нему из списка недавних приложений, будет выполнена следующая последовательность методов обратного вызова (при условии, что вы скрыли приложение, находясь в YourCurrentActivity):
- YourCurrentActivity. onRestart();
- YourCurrentActivity. onStart();
- YourCurrentActivity. onRestoreInstanceState();
- YourCurrentActivity.onResume();
Однако, если вы не входите в скрытое приложение в течение более длительного периода времени, то высокая вероятность того, что ОС уже убила ваше приложение в пользу удовлетворения других требований приложений.
Если это происходит следующая последовательность методов обратного вызова, называются:
- Применение. onCreate()
- YourCurrentActivity. onCreate();
- YourCurrentActivity. onStart();
- YourCurrentActivity. onResume();
Обратите внимание, что это все еще ваша текущая активность, которую вы оставили при скрытии приложения на фоне.
Выполняется следующая последовательность, поскольку система создает новый процесс для вашего приложения в качестве точек @CommonsWare.
Как предотвратить повреждение приложения системой? (Android - implementing startForeground for a service?)
Надеюсь, что это поможет.
Возможный дубликат [Will 'Bundle savedInstanceState «будет жив после того, как приложение будет убито?] (Http://stackoverflow.com/questions/16837595/will-bundle-savedinstancestate-be-alive-after-application-is- будучи убитым) –