Страницы

Поиск по вопросам

понедельник, 11 февраля 2019 г.

Метод System.exit(0)

Я поместила вызов метода System.exit(0) в onBackPressed
@Override public void onBackPressed() { super.onBackPressed(); System.exit(0); }
и после нажатия на клавишу BACK (из первого активити), судя по логам, вызываются следующие методы обратного вызова:
onCreate onStart onResume onBackPressed
После этого я запускаю приложение снова (неважно как - вызовом из списка запущенных приложением, или тапом по иконке приложения на домашнем экране), и вижу, что следующим вызывается метод OnCreate, минуя методы onStop и onDestroy. Каким образом завершается активность без вызова методов onStop и onDestroy? Убивается процесс, в котором запущено приложение?


Ответ

Вызов System.exit(0) перезапускает приложение, выкидывая последнюю activity.
Например, если из ActivityA открыта ActivityB, в которой делается вызов System.exit(0), то приложение будет убито и сразу же перезапущено с ActivityA.
Источник: Difference between finish() and System.exit(0)

Комментариев нет:

Отправить комментарий