Поведение кнопки «Назад» в Android

Допустим, у нас есть стандартная пустая активность с поведением по умолчанию, запущенная с флагами намерения по умолчанию. Пользователь нажимает кнопку «Назад» на устройстве. Активность исчезает... но как, собственно?

  • Нажатие кнопки «Назад» ведет себя так же, как finish()?
  • Активность немедленно уничтожается (вызывается onDestroy)?
  • Гарантировано ли уничтожение активности, но не сразу?
  • Есть ли шанс, что активность не будет уничтожена, а этот экземпляр будет повторно использован при запуске этой активности в будущем? (так называются только onPause и onStop -> onStart и onResume?)

Я ищу надежный ответ, поэтому, пожалуйста, не отвечайте, если вы не совсем уверены, что здесь происходит.


person Sebastian Nowak    schedule 23.07.2012    source источник
comment
это может вас заинтересовать: developer.android.com/training/basics /активность-жизненный цикл/   -  person Dennis    schedule 23.07.2012
comment
Вы можете опубликовать свой код, чтобы мы могли лучше судить   -  person Rahul Baradia    schedule 23.07.2012
comment
Есть ли что-то в default, empty activity with default behaviour, launched with default intent flags, что вы не можете воспроизвести? Просто создайте проект по умолчанию в вашей среде IDE.   -  person Sebastian Nowak    schedule 23.07.2012
comment
@Chips_100: В предоставленной вами ссылке нет ответа на этот вопрос.   -  person Sebastian Nowak    schedule 23.07.2012
comment
Прочитайте этот подраздел: developer.android.com/training/basics/activity- lifecycle/ [...]your activity is destroyed due to normal app behavior, such as when the user presses the Back button or your activity signals its own destruction by calling finish().[...] Я бы порекомендовал прочитать всю главу.   -  person Dennis    schedule 23.07.2012
comment
Хорошо спасибо. Таким образом, активность всегда уничтожается и не будет повторно использоваться. Не могли бы вы опубликовать это как ответ, чтобы я мог принять его?   -  person Sebastian Nowak    schedule 23.07.2012


Ответы (5)


http://developer.android.com/training/basics/activity-lifecycle/recreating.html< /а>

Это подраздел официальной документации Android, посвященный вашему вопросу. Это подраздел темы Managing the Activity Lifecycle, которую можно прочитать здесь: http://developer.android.com/training/basics/activity-lifecycle/index.html

Определенно стоит прочитать всю главу, чтобы узнать подробности о поведении Android Activity. Но подглава ( первая ссылка ) является соответствующей частью этого вопроса.

person Dennis    schedule 23.07.2012
comment
Это ответ только по ссылке, не могли бы вы процитировать соответствующие части документа? Такое ощущение, что вы хотите сделать добро, заставив людей читать эти статьи, попробовать метод Сократа и использовать уценку спойлера. - person TWiStErRob; 02.03.2016

вы используете, следует изучить это попробовать это

и, пожалуйста, скажите, что вы хотите сделать с кнопкой «Назад» для действий по умолчанию ......

person Vipin Sahu    schedule 23.07.2012

Когда вы нажимаете назад (если это не перехвачено чем-либо вроде клавиатуры, фрагмента, активности и т. д.), ОС (возможно, через ActivityManager) попытается показать пользователю предыдущую активность в вашей текущей задаче (опять же, игнорируя задний стек фрагментов) .

Если такой активности нет, задача будет завершена, и вы перейдете к предыдущей задаче — в большинстве случаев на домашний экран или в какое-то другое приложение, которое могло запустить ваше приложение.

Вам скоро позвонят onDestroy (это зависит от того, сколько времени потребуется, чтобы начать следующее действие, но на хорошем телефоне это должно быть меньше 100-200 мс).

Экземпляр вашей активности не будет повторно использоваться после onFinish. Это происходит до того, как действие будет уничтожено, поэтому, если вам понадобится другое действие того же типа, ОС создаст другой экземпляр.

person Pedro Loureiro    schedule 23.07.2012
comment
Я не об этом спрашивал. Вопрос достаточно точный. - person Sebastian Nowak; 23.07.2012
comment
Активность исчезает... но как, собственно? - кажется, я ответил на ваш вопрос - person Pedro Loureiro; 23.07.2012
comment
И это проблема с вами. Вы просто читаете первое предложение и отвечаете, не задумываясь. Если бы вы прочитали остальное, вы бы заметили, что я объяснил, о чем именно я спрашиваю. - person Sebastian Nowak; 23.07.2012

Когда пользователь нажимает клавишу НАЗАД, текущая активность выталкивается из вершины стека (активность гарантированно уничтожается, но не сразу, может быть, когда ресурсы системы заканчиваются) и возобновляется предыдущая активность (предыдущее состояние его пользовательский интерфейс восстанавливается).

Какие действия выполняет кнопка "Назад"/клавиша "Назад" на Триггер Android?

person Archie.bpgc    schedule 23.07.2012
comment
Пожалуйста, обратитесь к этому вопросу: stackoverflow.com/questions/4778754 / Если он всегда уничтожается, то почему они принудительно завершают() на кнопке "Назад"? - person Sebastian Nowak; 23.07.2012
comment
Также ознакомьтесь с принятым ответом здесь: stackoverflow. ком/вопросы/3249332/ - person Sebastian Nowak; 23.07.2012

Определенно onDestroy() называется ..... Есть несколько сценариев, в которых ваша активность уничтожается из-за нормального поведения приложения, например, когда пользователь нажимает кнопку «Назад» или ваша активность сигнализирует о своем уничтожении, вызывая finish().

person manuelesuzzani    schedule 14.01.2013