Я говорю о программировании в 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 останавливает дальнейшее выполнение, и программа выйдет".???? (согласно документации)
Я вижу первую активность там. Зачем? (Вы можете доказать, что я ошибаюсь/я был прав)