Жизненный цикл действия: запустите ActivectivityResult и нажмите кнопку «Назад» - PullRequest
3 голосов
/ 15 июля 2010

Существует ли метод жизненного цикла Activity , который вызывается, если пользователь нажимает кнопку возврата, но не вызывается метод startActivityForResult ()? Я не смог найти метод, протестировав его.

Ответы [ 2 ]

5 голосов
/ 01 марта 2012

Обычно это onResume (), за которым следует onActivityResult (). Однако возможно, хотя и маловероятно, что вызывающая деятельность будет были убиты в какой-то момент, пока пользователь работал с другим деятельность; это происходит, когда системе не хватает памяти, при которой указать, что он начинает убивать вещи, начиная с «самых неактивных». В в этом случае, я думаю, он будет проходить через onCreate (), onStart (), onResume () и, наконец, onActivityResult (). https://stackoverflow.com/a/2869832/323696

Ответ, который я цитировал выше, является правильным, за исключением объяснения того, когда вызывающее действие убито или завершено () до того, как вызываемое действие завершится.

В этом случае, когда вызывающая операция, Деятельность # 1 , возобновляется после вызова другой операции, Деятельность # 2 , используя startActivityForResult , метод onActivityResult в Упражнение № 1 называется ДО onResume .

Это важно знать, если вы создаете экземпляры объектов вашей базы данных SQLite из onResume в Activity # 1 . Если это так, вам также нужно будет создать экземпляр объекта из onActivityResult при возврате из Activity # 2 .

Для получения дополнительной информации читайте о методе startActivityForResult в http://developer.android.com/reference/android/app/Activity.html.

Мне не удалось найти диаграмму жизненного цикла, изображающую это. Шаг для возврата из действия для результата всегда суммируется в текстовом описании на изображениях LifeCycle с указанием « Пользователь возвращается к действию » или « Действие выходит на передний план.

5 голосов
/ 15 июля 2010

Извините, я просто не видел решения, но вот оно:

При вызове startActivityForResult () вызываются методы onPause () и onStop () исходного действия.

При нажатии кнопки Back вызываются методы onPause (), onStop () и onDestroy ().

Таким образом, разница заключается в методе onDestroy ().

...