Жизненный цикл активности Android после нажатия кнопки "Назад"
Я немного путаюсь между жизненным циклом двух видов деятельности.
Предположим, что у меня есть активность А и активность Б.
B называется From A, т.е. A → B
Теперь на данный момент B
находится на экране, и я нажал кнопку "Назад". Здесь я хочу знать: - есть ли какая-либо память, доступная для B
(Active) или B
сбрасывается (неактивна).
Ответы
Ответ 1
Предположим, что есть активность A, из которой вы запускаете действие B. Если в момент действия B вы нажали кнопку "Назад", вы выталкиваете активность B из стека, а B больше не будет в стеке активности.
Всякий раз, когда вы вызываете действие в стек, вызывается onCreate
, и если вы нажмете кнопку "Назад", вызывается onDestroy
, что означает, что действие удалено.
![stack]()
Пожалуйста, посетите мой блог для получения дополнительной информации:
http://upadhyayjiteshandroid.blogspot.in/2013/02/android-lifecycle.html
пожалуйста, посетите более
http://developer.android.com/guide/components/tasks-and-back-stack.html
http://developer.android.com/training/basics/activity-lifecycle/starting.html
Ответ 2
После нажатия кнопки возврата вызывается следующий метод обратного вызова активности.
onPause()
onStop()
onDestroy()
Действие уничтожается.
И он воссоздается при запуске снова. Это методы обратного вызова при повторном запуске.
onCreate()
onStart()
onResume()
Ответ 3
Метод onDestroy
вызывается после обратного пресса. Затем активность будет выведена из стека активности.
Из документов:
Если действие приостановлено или остановлено, система может удалить активность из памяти, попросив ее закончить или просто убить ее процесс. Когда он снова отображается пользователю, он должен быть полностью перезапущен и восстановлен до своего предыдущего состояния.
onDestroy()
из документов:
Окончательный звонок, который вы получаете до того, как ваша деятельность будет уничтожена. Это может произойти либо потому, что активность заканчивается (кто-то называется finish()
на нем, либо потому, что система временно уничтожает этот экземпляр активности для экономии места. Вы можете различать эти два сценария с isFinishing()
.
![enter image description here]()
Ответ 4
Активность B будет уничтожена и больше не останется в памяти.
Для получения дополнительной информации посетите официальную документацию для андроида и посмотрите на показатель жизненного цикла активности.
Как только вы нажмете заднюю клавишу, будет вызван метод onDestroy(), и действие будет выведено из памяти. Затем вам потребуется перезапустить действие, вызвав метод startActivity(), который в свою очередь вызовет его метод onCreate().
Ответ 5
Вот ссылка на приложение, которое дает вам хорошую идею о жизненном цикле активности Android.
Нажмите здесь, чтобы загрузить приложение
Ответ 6
Я бы предложил ссылаться на следующую ссылку для жизненного цикла деятельности
http://stackoverflow.com/a/8516056/3110609
и следующую ссылку для запуска режима активности.
www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode
Ответ 7
После нажатия кнопки "Назад" действие B будет уничтожено. Вы видите, что Android управляет такими действиями, как Stack (объяснение стека). Каждый раз, когда вы начинаете свою деятельность, он вставляет в стек активности. Поэтому, когда Activity A вызывает Activity B, Activity B теперь находится поверх Activity B, и когда вы нажимаете кнопку "Назад", она также выполняет всплытие в стеке активности. Таким образом, в концепции, активность B ушла. Нажатие кнопки "Главная" отличается от нажатия назад, она приостанавливает действие, поэтому она все еще немного поглощает память телефона.
Здесь является хорошим объяснением того, как Android управляет действиями.
Ответ 8
Я знаю, что ответ был одобрен, но если это помогает кому-то, я его помещаю.
Когда приложение открывается в первый раз, щелкнув значок
onCreate()
onStart()
onResume()
Когда нажата кнопка дома
onPause()
onStop()
когда приложение снова открывается, щелкнув значок приложения или запущенный из последних
onRestart()
onStart()
onResume()
когда приложение открыто, а затем нажата кнопка "Назад"
onPause()
onStop()
onDestroy()