Какие действия вызывает кнопка «Назад»/клавиша «Назад» на Android?

Я действительно смущен. Я читал, что кнопка назад

Я думаю, что onPause() должен быть правильным. Но это побочный эффект, потому что Activity уходит в фон. Я ничего не нашел в документации. Но, возможно, я что-то упустил.

Может кто-нибудь объяснить мне, что кнопка «Назад» должна делать программно? Некоторые ссылки также были бы хорошими. :-)


person Flow    schedule 02.09.2011    source источник
comment
Вы можете переопределить все эти функции и выполнить их Debug или Log(), чтобы увидеть, что происходит.   -  person weakwire    schedule 03.09.2011


Ответы (2)


Я читал, что кнопка «Назад» вызывает onDestroy(), может закрыть текущую активность, вызывает onPause()

Все три правильны.

Я ничего не нашел в документах.

Цитирование документации Android:

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

Чтобы уточнить, если нет ничего другого, что будет потреблять нажатие кнопки НАЗАД (например, открытое меню параметров), ваш Activity будет вызываться с onBackPressed(). Реализация этого по умолчанию вызывает finish(). Это переведет вашу активность из состояния выполнения в состояние уничтожения, последовательно вызывая onPause(), onStop() и onDestroy(), как показано на схеме потока событий:

введите здесь описание изображения

person CommonsWare    schedule 02.09.2011
comment
Я искал кнопку «Назад» вместо клавиши «Назад» в документации по Android. do'h Спасибо Марк - person Flow; 03.09.2011
comment
@Flow: Да, эти термины взаимозаменяемы. Я сам обычно называю это кнопкой НАЗАД. И, увы, слово "назад" используется для большего количества вещей... :-) - person CommonsWare; 03.09.2011

Просто добавьте, что приложение браузера переопределяет onBackPressed(), чтобы вернуться к ранее открытым вкладкам (если они доступны), а это не закрывает приложение.

person ethan    schedule 03.09.2011