Жизненный цикл активности Android после нажатия кнопки «Назад»
-
21-12-2019 - |
Вопрос
Меня немного путает жизненный цикл двух видов деятельности.
Предположим, у меня есть действие A и действие B.
B называется From A, т.е. A ----> B
.
Сейчас в настоящее время B
на экране, и я нажал кнопку «Назад».Здесь я хочу знать: - есть ли еще свободная память для B
(Активный) или B
Память очищается (неактивна).
Решение
Предположим, есть активность А, из которой вы запускаете активность Б.Если во время действия B вы нажмете кнопку «Назад», вы вытолкнете действие B из стека, и B больше не будет в стеке действий.
Всякий раз, когда вы помещаете действие в стек, onCreate
вызывается, и если вы нажмете кнопку «Назад», onDestroy
вызывается, что означает, что активность сбрасывается.
Пожалуйста, посетите мой блог для получения дополнительной информации:http://upadhyayjiteshandroid.blogspot.in/2013/02/android-lifecycle.html
пожалуйста, посетите, чтобы узнать больше
http://developer.android.com/guide/comComponents/tasks-and-back-stack.html
http://developer.android.com/training/basics/activity-lifecycle/starting.html
Другие советы
Следующие методы обратного вызова действия вызываются, после нажатия кнопки назад.
onPause()
onStop()
onDestroy()
.
Действие разрушается.
И он воссоздает при запуске снова.Это методы обратного вызова, когда он снова запускает.
onCreate()
onStart()
onResume()
. Тот Самый onDestroy
метод вызывается после обратного нажатия.Затем действие будет извлечено из обратного стека действий.
Если действие приостановлено или остановлено, система может удалить действие из памяти либо попросив его завершить, либо просто остановив его процесс.Когда он снова будет показан пользователю, его необходимо полностью перезапустить и восстановить в прежнее состояние.
onDestroy()
из документов:
Последний вызов, который вы получаете перед тем, как ваша активность будет уничтожена.Это может произойти либо потому, что действие завершается (кто-то позвонил
finish()
на нем, или потому, что система временно уничтожение этого экземпляра действия для экономии места.Вы можете провести различие между этими двумя сценариями с помощьюisFinishing()
способ.
Я знаю, что ответ был Acceppcted, тем не менее, если это поможет кому-то, что я его кладу.
onCreate()
onStart()
onResume()
.
Когда нажата домашняя кнопка
onPause()
onStop()
.
onRestart()
onStart()
onResume()
.
onPause()
onStop()
onDestroy()
. Деятельность B будет уничтожена и больше не будет оставаться в памяти.
Для получения дополнительной информации, пожалуйста, посетите Официальная документация для Android И посмотрите на рисунок жизненного цикла деятельности.
Как только вы нажмете клавишу заднего клавиша, будет называться метод Andestroy () активности, и активность будет промываться из памяти.Затем вам потребуется перезапустить активность, позвонив на метод startactive (), который будет в свою очередь, вызовите свой метод OnCreate ().
Я бы предложил ссылаться на следующую ссылку для жизненного цикла на активность
http://stackoverflow.com/a/8516056/3110609
.
и следующая ссылка для режима запуска активности.
www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode
. После нажатия кнопки назад активность B будет разрушена.Видите ли, Android управляет мероприятиями, такими как Stack (объяснение стека) .Каждый раз, когда вы начинаете действие, он толкает в стек активности.Таким образом, когда активность вызовов активность B, активность B теперь находится в верхней части активности B, а при нажатии кнопки назад она также делает поп в стеке активности.Так что в концепции, активность B уходит.Нажатие кнопки «Домой» отличается от нажатия назад, она приостанавливает активность, поэтому она все еще немного ест памяти телефона.
Здесь - это хорошее объяснение того, как Android управляет действиями,