Я говорю о программировании в android.
В первые дни я думал, что finish()
закрывает текущую активность и возвращается к предыдущему в стеке действия, а System.exit(0)
закрывает все приложение.
Но я был неправ. Я сделал небольшой эксперимент и понял, что Оба завершат только текущую активность.
Единственные различия, которые я мог заметить, это то, что в Android 2.3.3
- ActivityResult распространяется на
onActivityResult()
с помощьюfinish()
. В то время какonActivityResult()
не вызывается дляSystem.exit(0)
.
Но в Android 4.2.2 вызывается onActivityResult() для обоих! и Intent было null для выхода(). (Я тестировал только в этих двух устройствах)
- При использовании exit() существует временная задержка, тогда как
finish()
быстрее. (похоже, что в exit() есть больше фоновых операций
Итак,
-
какая разница между двумя?
-
В каких ситуациях я могу использовать exit()?
Я считаю, что есть что-то большее, чего я не вижу между этими двумя методами. Надеюсь, кто-нибудь может объяснить и исправить меня.
Спасибо
ИЗМЕНИТЬ ЗАПРОС:
Сделайте приложение для Android с 2 действиями. Вызовите вторую активность из активности Launcher, используя Intent. Теперь, во втором действии, нажав кнопку, вызовите System.exit(0);
.
"VM останавливает дальнейшее выполнение, и программа выйдет".???? (согласно документации)
Я вижу первую активность там. Зачем? (Вы можете доказать, что я ошибаюсь/я был прав)