Жизненный цикл активности 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

activity lifecycle пожалуйста, посетите более

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().

Ответ 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()