Junior
Quali metodi del ciclo di vita dell'Activity conosci e come vengono eseguiti?
sobes.tech AI
Risposta dell'AI
onCreate(): Viene chiamato alla prima creazione dell'Activity. Usato per inizializzare l'interfaccia utente e i dati.onStart(): L'Activity diventa visibile all'utente.onResume(): L'Activity diventa attiva e si trova in primo piano. L'utente può interagire con essa.onPause(): Viene chiamato quando l'Activity passa in secondo piano o un'altra Activity la copre parzialmente. Usato per salvare lo stato che deve essere rapidamente ripristinato.onStop(): L'Activity non è più visibile all'utente. Usato per liberare risorse non utilizzate.onDestroy(): Viene chiamato prima che l'Activity venga distrutta. Usato per pulire le risorse finali.onRestart(): Viene chiamato dopoonStop(), quando l'Activity diventa di nuovo visibile.
Sequenza di esecuzione dei metodi all'avvio: onCreate() -> onStart() -> onResume().
Sequenza di esecuzione passando in secondo piano (ad esempio, premendo il pulsante Home): onPause() -> onStop().
Sequenza di esecuzione tornando dal background: onRestart() -> onStart() -> onResume().
Sequenza di esecuzione distruggendo l'Activity: onPause() -> onStop() -> onDestroy().
Quando si ruota lo schermo, l'Activity viene distrutta e ricreata. Sequenza: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Per salvare lo stato si usa onSaveInstanceState() (chiamato prima di onStop()) e il ripristino in onCreate() o onRestoreInstanceState() (chiamato dopo onStart()).
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) // Inizializzazione UI
// Ripristino stato da savedInstanceState
}
override fun onStart() {
super.onStart()
// L'Activity diventa visibile
}
override fun onResume() {
super.onResume()
// L'Activity è in primo piano, disponibile per interagire
}
override fun onPause() {
super.onPause()
// L'Activity passa in secondo piano
// Salvataggio stato rapidamente ripristinabile
}
override fun onStop() {
super.onStop()
// L'Activity non è visibile
// Rilascio risorse
}
override fun onDestroy() {
super.onDestroy()
// L'Activity viene distrutta
// Pulizia finale delle risorse
}
override fun onRestart() {
super.onRestart()
// L'Activity ritorna dal background
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// Salvataggio stato prima della distruzione
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
// Ripristino stato
}
}