Sobes.tech
Junior — Middle

Comment assurer la conservation de l'état actuel du système lors de la modification de la configuration?

sobes.tech IA

Réponse de l'IA

En Android, pour sauvegarder l'état actuel du système lors d'un changement de configuration (par exemple, la rotation de l'écran), on utilise le mécanisme de sauvegarde de l'état de l'Activity ou du Fragment.

Principales méthodes :

  1. onSaveInstanceState(Bundle outState) — méthode permettant de sauvegarder les données nécessaires dans un objet Bundle. Ces données seront accessibles lors de la recréation de l'Activity dans onCreate ou onRestoreInstanceState.

  2. ViewModel — composant des composants architecturaux d'Android, qui conserve les données lors d'un changement de configuration et ne se recrée pas avec l'Activity.

  3. Sauvegarde de l'état des composants UI — de nombreux widgets standard sauvegardent leur état automatiquement s'ils ont un identifiant unique.

Exemple de sauvegarde de l'état d'un compteur :

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
        // mettre à jour l'UI avec la valeur actuelle de counter
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putInt("counter_key", counter)
    }
}

Ainsi, lors d'un changement de configuration, les données ne seront pas perdues et l'utilisateur verra la même interface et le même état.