2010-05-08 10 views
5

La mia app indica un'attività. Con il clic di un pulsante, l'app apre il browser con una pagina web. Quando premo il pulsante Indietro, ritorna alla schermata dell'attività iniziale, ma non riprende o riavvia l'attività.Il pulsante Indietro di Android non riavvia l'attività?

Quando inserisco tutto il codice di layout e il codice attività in onResume anziché onCreate, l'attività viene riavviata.

La mia domanda è se questo è il modo giusto per farlo? Posso usare onResume per disegnare il mio layout e avviare l'attività, oppure questo design è scarso? Quando il browser si attiva, l'attività iniziale dimentica il layout?

Per favore fatemi sapere cosa suggerite.

Grazie Chris

risposta

1

Per lo più si dovrebbe leggere la Activity Life Cycle.

Va bene inizializzare in onResume finché lo si fa una sola volta. O avere un membro hasinitial dedicato o controllare qualche altro valore che avrà un significato equivalente e non inizializzarlo di nuovo se è impostato.

+0

La mia domanda riguarda più il fatto che avere la creazione del layout e l'attività a partire dal metodo onCreate ha iniziato bene, ma quando sono tornato dal browser, solo il layout è stato reso, ma l'attività non è stata avviata. Cosa succede esattamente al layout quando si apre il browser? Inserendo lo stesso codice in onResume, avvia tutto e riavvia l'attività dopo aver premuto il pulsante Indietro. – Chris

+0

Quando ho disegnato il layout in onCreate e avviato l'attività, sul pulsante Indietro premere dal browser, il layout viene visualizzato ma l'attività non si riavvia. Quando non ho fatto nulla in onCreate, ma ho disegnato il layout in onResume e ho iniziato la mia attività, il pulsante Indietro ha reso il layout e ha riavviato l'attività. – Chris

+0

Sono d'accordo con la risposta: dovresti leggere la pagina collegata a: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle "ma quando sono tornato dal browser, solo il layout è stato reso, ma l'attività non è stata avviata "- no, l'attività è stata sicuramente avviata, come definito da una chiamata a' onStart() '. – CommonsWare

Problemi correlati