2013-05-23 3 views
22

Ich möchte eine Aktivität (zweite Aktivität) von einer anderen Aktivität (erste Aktivität) durch den Aufruf startActivity(intent) starten. Bevor ich es wirklich tun, fand ich die Leute sagen, dass die Lifecycle-Methoden in der folgenden Reihenfolge aufgerufen werden:Android - Beim Wechseln zwischen zwei Aktivitäten, die aufrufende Reihenfolge der Lebenszyklus-Methoden der Aktivität

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

Ist SECOND Activity onResume genannt immer vor FIRST Acitivity onStop? Ich dachte

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

wird aufgerufen werden, aber es scheint nicht.

Auch, wenn ich wechseln Sie einfach zwischen zwei Aktivitäten,

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

sind die Methoden immer in dieser Reihenfolge genannt?

Antwort

28

in der Dokumentation nach, SECOND.onResume() vor FIRST.onStop aufgerufen werden soll() https://developer.android.com/guide/components/activities/activity-lifecycle.html#soafa (Koordination der Aktivitäten Abschnitt)

+0

Oh, gibt es bereits ein Dokument dafür. – Naetmul

+0

Aber bedenken Sie, dass manche Methoden niemals wie 'onStop()' aufgerufen werden können. Lesen Sie die Dokumentation der einzelnen Methoden sorgfältig durch, bevor Sie Ihren Code implementieren. – OneWorld

+0

@OneWorld Haben Sie Quellen dafür? Ich kann nirgends finden, dass "onStop()" niemals aufgerufen wird. Ich weiß, dass 'onDestroy()' nicht aufgerufen wird, wenn der Prozess im Hintergrund ist und das System beschließt, es ohne Aufruf aller Methoden zu beenden, aber keine solchen Anweisungen über 'onStop() 'finden kann. – Thorbear