Come garantire la conservazione dello stato attuale del sistema durante la modifica della configurazione?
sobes.tech AI
Risposta dell'AI
In Android, per salvare lo stato attuale del sistema durante una modifica della configurazione (ad esempio, la rotazione dello schermo), si utilizza il meccanismo di salvataggio dello stato di Activity o Fragment.
Principali metodi:
-
onSaveInstanceState(Bundle outState) — metodo in cui è possibile salvare i dati necessari in un oggetto Bundle. Questi dati saranno disponibili durante la ricreazione di Activity in onCreate o onRestoreInstanceState.
-
ViewModel — componente dei componenti architetturali di Android, che conserva i dati durante una modifica della configurazione e non viene ricreato insieme all'Activity.
-
Salvataggio dello stato dei componenti UI — molti widget standard salvano automaticamente il loro stato se hanno un identificatore univoco.
Esempio di salvataggio dello stato di un contatore:
class MainActivity : AppCompatActivity() {
private var counter = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
counter = savedInstanceState?.getInt("counter_key") ?: 0
// aggiornare l'UI con il valore corrente di counter
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("counter_key", counter)
}
}
In questo modo, durante una modifica della configurazione, i dati non vengono persi e l'utente vedrà la stessa interfaccia e stato.