2013-05-23 19 views
22

Chcę rozpocząć działanie (aktywność DRUGĄ) od innej aktywności (PIERWSZA aktywność), dzwoniąc pod numer startActivity(intent). Przed I rzeczywiście to zrobić, znalazłem ludzie mówią, że metody cyklu życia nazywane są w następującej kolejności:Android - Podczas przełączania między dwiema czynnościami kolejność wywoływania metod cyklu życia działania

FIRST Activity onCreate 
FIRST Activity onStart 
FIRST Activity onResume 
FIRST Activity onPause 
SECOND Activity onCreate 
SECOND Activity onStart 
SECOND Activity onResume 
FIRST Activity onStop 

Czy SECOND Activity onResume zawsze wywoływana przed FIRST Acitivity onStop? Pomyślałem, że zostanie wywołane, ale wygląda na to, że nie.

Ponadto, jeśli po prostu przełączanie między dwoma działaniami,

FIRST Activity onPause 
SECOND Activity onRestart 
SECOND Activity onStart 
SECOND Activity onResume 
FIRST Activity onStop 

są metody nazywane zawsze w tej kolejności?

Odpowiedz

28

Zgodnie z dokumentacją, SECOND.onResume() ma być wywołana przed FIRST.onStop() https://developer.android.com/guide/components/activities/activity-lifecycle.html#soafa (działania koordynujące sekcji)

+0

Oh, nie ma już dla niego dokument. – Naetmul

+0

Należy jednak pamiętać, że niektóre metody nigdy nie mogą być nazywane 'onStop()'. Przeczytaj uważnie dokumentację każdej metody przed zaimplementowaniem swojego kodu. – OneWorld

+0

@OneWorld Czy masz jakieś źródła do tego? Nie mogę znaleźć nigdzie mówiąc, że 'onStop()' może nigdy nie zostać wywołane. Wiem, że 'onDestroy()' nie zostanie wywołany, jeśli proces jest w tle i system postanawia go zabić bez wywoływania wszystkich metod, ale nie może znaleźć takich instrukcji o 'onStop()'. – Thorbear