2013-05-23 8 views
22

Desidero avviare un'attività (SECONDA attività) da un'altra attività (PRIMA attività) chiamando startActivity(intent). Prima di farlo davvero, ho trovato persone dire che i metodi del ciclo di vita sono chiamate nel seguente ordine:Android - Passando tra due attività, l'ordine chiamante dei metodi del ciclo di vita dell'attività

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

È il SECOND Activity onResume sempre chiamato prima FIRST Acitivity onStop? Ho pensato che

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

sarà chiamato, ma non sembra.

Inoltre, se mi basta passare tra le due attività,

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

sono i metodi sempre chiamato in questo modo?

risposta

28

Secondo la documentazione, SECOND.onResume() dovrebbe essere chiamato prima FIRST.onStop() https://developer.android.com/guide/components/activities/activity-lifecycle.html#soafa (attività di coordinamento sezione)

+0

Oh, c'è già un documento per esso. – Naetmul

+0

Ma tenete a mente, alcuni dei metodi non possono mai essere chiamati come 'onStop()'. Leggere attentamente la documentazione di ciascun metodo prima di implementare il codice. – OneWorld

+0

@OneWorld Hai qualche fonte per questo? Non riesco a trovare da nessuna parte dicendo che 'onStop()' non può mai essere chiamato. So che 'onDestroy()' non verrà chiamato se il processo è in background e il sistema decide di ucciderlo senza chiamare tutti i metodi, ma non riesce a trovare alcuna istruzione di questo tipo su 'onStop()'. – Thorbear

Problemi correlati