Mówię o programowaniu w systemie Android.Różnica między zakończeniem() i System.exit (0)
W pierwszych dniach Myślałam, że finish()
zamyka bieżącą działalność i wrócić do poprzedniego w stosie aktywny i System.exit(0)
zamyka całą aplikację.
Ale się myliłem. Zrobiłem mały eksperyment i zrozumiałem, że Obie zakończą tylko bieżącą Aktywność.
Jedyne różnice, które mogłyby Zauważyłem to, że w Androidzie 2.3.3
- The ActivityResult są propagowane z powrotem do
onActivityResult()
użyciufinish()
. Podczas gdyonActivityResult()
nie wzywano doSystem.exit(0)
.
Ale w systemie Android 4.2.2, onActivityResult() jest wywoływana dla obu! i Intent miał wartość null dla exit(). (testowałem tylko w tych 2 urządzeń)
- Jest opóźnienie przy korzystaniu exit() natomiast
finish()
jest szybciej. (Wydaje się, że więcej operacji tła są tam na wyjściu())
Więc
jaka jest różnica między nimi?
W jakich sytuacjach mogę użyć exit()?
Wierzę, że jest coś więcej, czego mi brakuje między dwiema metodami. Mam nadzieję, że ktoś może wyjaśnić więcej i poprawić mnie.
Dzięki
EDIT Na żądanie:
Złóż aplikację na Androida z 2 Działania. Wywołaj drugą aktywność z działania programu uruchamiającego za pomocą funkcji Intent. Teraz, w drugim działaniu, jednym kliknięciem przycisku, zadzwoń pod numer System.exit(0);
. „VM i zatrzymuje dalsze wykonanie programu zostanie zamknięty.” ???? (według documentation)
widzę pierwszą aktywność nie. Czemu? (Zapraszamy do udowodnienia, że się mylę/I miał rację)
http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-that-frowned-on. sprawdź odpowiedzi tutaj – Raghunandan
@Raghunandan: To jest dobre. Wszyscy proszę spojrzeć. Ale ogromna ilość informacji. Czy ktoś może krótko opowiedzieć o moim temacie? – Nizam
Nigdy nie używaj 'System.exit()' nie polecam go. Użyj 'finish()'. Do nawigacji możesz użyć szuflady nawigacji. – Raghunandan