All'avvio dell'attività, viene chiamato il metodo onCreate()
. Nel metodo onCreate()
si esegue la logica di avvio di base che dovrebbe verificarsi una sola volta per l'intera durata dell'attività.
Dopo l'esecuzione di onCreate()
, viene chiamato il metodo onStart()
. Questo metodo rende visibile l'attività mentre l'app prepara l'attività per entrare in primo piano e diventare interattiva.
Dopo l'esecuzione di onStart()
, viene chiamato il metodo onResume()
. Questo metodo viene chiamato solo quando l'app è nello in primo piano perché questo è lo stato in cui l'app interagisce con l'utente. L'app rimane nello stato ripristinato (o in esecuzione) finché qualcosa non si focalizza sull'app.
Se un'altra attività entra in in primo piano, viene chiamato il metodo onPause()
. L'app è in pausa se è ancora visibile. Questo metodo mette solo in pausa le operazioni dell'attività. Non distrugge. L'attività rimane in stato di pausa finché l'attività non riprende o diventa completamente invisibile all'utente. 4a. Se l'utente ritorna all'attività, viene chiamato di nuovo il metodo onResume()
onResume()
. 4b. la procedura dell'app può essere interrotta dallo stato di pausa se le app con priorità più alta necessitano di memoria. Se l'utente ha bisogno per tornare a app dopo che è stato ucciso, il metodo onCreate()
viene chiamato di nuovo
Se l'attività non è più visibile per l'utente, il metodo onStop()
viene chiamato. Quando l'attività viene interrotta, l'oggetto attività viene tenuto in memoria e conserva tutti gli stati e le informazioni ma non è collegato al gestore finestre. 5a. se l'utente torna all'attività, viene chiamato il metodo onRestart()
seguito dal metodo onStart()
. 5b. la procedura dell'app può essere interrotta dallo stato di arresto se le app con priorità più alta necessitano di memoria.Se l'utente deve tornare all'app dopo che è stato ucciso, viene chiamato di nuovo il metodo onCreate()
.
Se l'attività sta terminando o viene interrotta dal sistema, viene chiamato il metodo onDestroy()
. L'app non è inizialmente chiusa. Il sistema chiama questo metodo perché l'attività sta terminando a causa della chiamata di qualcuno finish()
o perché il sistema sta temporaneamente distruggendo il processo che contiene l'attività per risparmiare spazio. Il sistema può anche chiamare questo metodo quando si verifica un cambiamento di orientamento e quindi chiamare immediatamente onCreate()
per ricreare il processo (e i componenti che contiene) nel nuovo orientamento. Il metodo onDestroy()
rilascia tutte le risorse che non sono ancora state rilasciate con metodi precedenti come onStop()
.
L'intera vita di un'attività avviene tra la prima chiamata a onCreate()
attraverso una singola chiamata finale onDestroy()
.
durata visibile di un'attività tra una chiamata a onStart()
fino a una chiamata a onStop()
.
Il primo piano vita di un'attività accade tra una chiamata a onResume()
fino a quando una chiamata al onPause()
.
L'unico metodo che dobbiamo implementare è onCreate()
. Gli altri sono chiamati automaticamente. Ma possiamo implementarli noi stessi per dire all'app cosa fare durante quei processi.
https://developer.android.com/guide/components/activities/activity-lifecycle.html#asem
onAttachedToWindow
è chiamato quando la visualizzazione è attaccato ad una finestra. A questo punto ha una superficie e inizierà a disegnare.
https://developer.android.com/reference/android/view/View.html#onAttachedToWindow()
fonte
2018-02-15 21:21:54
Se volete vedere come si adatta con gli altri metodi, si potrebbe ignorare ognuno dei metodi e aggiungere alcune dichiarazioni di stampa. –
Sì, l'ho fatto (onAttachedToWindow() va dopo onResume()). Ma ciò non dà la risposta a * cosa succede esattamente? * E * perché tale differenza nella reattività? *. – Ralkie
Quando viene avviato esattamente l'evento OnCreate? Quando imposto un punto di interruzione all'inizio dell'evento OnCreate, l'app viene eseguita e carica l'attività sullo schermo, quindi viene attivato il punto di interruzione e l'app viene messa in pausa. Ho bisogno di un evento sull'attività che si attiva esattamente prima dell'attività inizializzata e avviata. –