Préserver l'état d'activité dans Android avec Enregistrer l'état de l'instance

Java

Comprendre la préservation de l’état d’activité

Enregistrer l'état d'une activité dans Android peut être quelque peu déroutant, en particulier pour les développeurs qui découvrent la plate-forme Android SDK. L'exemple fourni ici montre une application simple qui accueille les utilisateurs différemment selon que c'est la première fois qu'ils ouvrent l'application ou s'ils reviennent.

Cependant, l'implémentation actuelle affiche toujours le message d'accueil initial, quelle que soit la navigation en dehors de l'application. Cet article vous guidera à travers les étapes nécessaires pour enregistrer et restaurer correctement l'état d'une activité à l'aide de la méthode `onSaveInstanceState`.

Commande Description
onSaveInstanceState(Bundle outState) Cette méthode est appelée avant la destruction d'une activité pour enregistrer l'état des composants de l'interface utilisateur.
putString(String key, String value) Enregistre une valeur de chaîne dans le Bundle avec une clé spécifiée pour une récupération ultérieure.
getString(String key) Récupère une valeur de chaîne du Bundle à l’aide de la clé spécifiée.
onRestoreInstanceState(Bundle savedInstanceState) Cette méthode est appelée après onStart() pour restaurer l'état de l'interface utilisateur à partir du bundle précédemment enregistré.
setContentView(View view) Définit le contenu de l'activité sur une vue explicite, ce qui en fait la racine de la mise en page.
TextView.setText(String text) Définit le texte à afficher par TextView.
super.onCreate(Bundle savedInstanceState) Appelle la méthode onCreate() de la superclasse, initialisant l'activité.

Comment enregistrer l'état d'activité sur Android

Dans les scripts fournis, nous explorons comment enregistrer l'état d'une activité à l'aide du méthode dans le développement Android. Le premier script montre la création d'une activité qui affiche un message de bienvenue, qui change selon que c'est la première fois que l'utilisateur ouvre l'application ou s'il s'en est éloigné et est revenu. La partie critique du script consiste à sauvegarder l'état du en utilisant le méthode. Lorsque l'activité est sur le point d'être détruite, cette méthode est appelée pour sauvegarder l'état des composants de l'interface utilisateur. Nous stockons le texte affiché dans le TextView en utilisant le méthode, qui associe une valeur de chaîne à une clé spécifiée dans le .

Lors de la recréation de l'activité, le La méthode vérifie s'il existe un état d'instance enregistré. Si c'est le cas, il récupère le texte précédemment stocké à l'aide du méthode et la remet à la . Cela garantit que l’utilisateur voit le même message qu’il a vu avant de s’éloigner. Dans le deuxième script, nous affinons encore cette approche en ajoutant le onRestoreInstanceState(Bundle savedInstanceState) méthode, qui est appelée après pour restaurer l'état de l'interface utilisateur à partir de l'état précédemment enregistré . Cette méthode définit directement le texte enregistré sur le , garantissant que l’état de l’interface utilisateur est cohérent et préservé de manière transparente lors des redémarrages d’activité.

Implémentation de la sauvegarde d'état dans les activités Android

Développement Java-Android

package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    private TextView mTextView = null;
    private static final String TEXT_VIEW_KEY = "textViewKey";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTextView = new TextView(this);

        if (savedInstanceState == null) {
            mTextView.setText("Welcome to HelloAndroid!");
        } else {
            mTextView.setText(savedInstanceState.getString(TEXT_VIEW_KEY));
        }
        setContentView(mTextView);
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(TEXT_VIEW_KEY, mTextView.getText().toString());
    }
}

Assurer la persistance des données dans les applications Android

Développement Java-Android

package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    private TextView mTextView = null;
    private static final String TEXT_VIEW_STATE = "textViewState";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTextView = new TextView(this);

        if (savedInstanceState != null) {
            mTextView.setText(savedInstanceState.getString(TEXT_VIEW_STATE));
        } else {
            mTextView.setText("Welcome to HelloAndroid!");
        }
        setContentView(mTextView);
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(TEXT_VIEW_STATE, mTextView.getText().toString());
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        mTextView.setText(savedInstanceState.getString(TEXT_VIEW_STATE));
    }
}

Garantir la persistance de l'état lors des modifications de configuration

Lors du développement d'applications Android, la gestion de l'état d'activité lors des modifications de configuration, telles que les rotations d'écran, est cruciale. Les modifications de configuration entraînent la destruction et la recréation des activités, entraînant la perte des états temporaires de l'interface utilisateur si elles ne sont pas gérées correctement. En utilisant le méthode, les développeurs peuvent enregistrer les informations nécessaires sur l’état de l’interface utilisateur. Cette méthode est appelée avant la destruction de l'activité, permettant aux développeurs de stocker des paires clé-valeur dans un , préservant l'état pour une restauration ultérieure.

De plus, il est essentiel de comprendre le rôle du classe à partir des composants d'architecture d'Android. est conçu pour stocker et gérer les données liées à l'interface utilisateur d'une manière soucieuse de leur cycle de vie, permettant aux données de survivre aux changements de configuration. En utilisant , les développeurs peuvent dissocier les contrôleurs d'interface utilisateur des données qu'ils gèrent, ce qui rend l'application plus robuste et plus facile à maintenir. Combinaison ViewModel avec fournit une solution complète pour gérer efficacement l’état de l’activité.

  1. Quel est le but de ?
  2. Le La méthode est utilisée pour enregistrer l’état actuel de l’interface utilisateur d’une activité avant qu’elle ne soit détruite.
  3. Comment restaurer l'état d'activité ?
  4. Vous pouvez restaurer l'état d'activité dans le méthode en vérifiant le saveInstanceState et récupérer les valeurs stockées.
  5. Qu'est-ce qu'un ?
  6. UN est une carte de paires clé-valeur utilisée pour transmettre des données entre les activités et enregistrer l'état de l'interface utilisateur.
  7. Quel est le rôle de dans la gestion de l'État ?
  8. stocke les données liées à l'interface utilisateur d'une manière soucieuse du cycle de vie, survivant aux changements de configuration.
  9. Quand est appelé?
  10. est appelé après lorsque l'activité est réinitialisée à partir d'un état précédemment enregistré.
  11. Puis-je utiliser les deux et ensemble?
  12. Oui, en combinant avec fournit une solution robuste pour gérer l’état de l’interface utilisateur lors des modifications de configuration.
  13. Que sont les changements de configuration dans Android ?
  14. Les modifications de configuration incluent les rotations d’écran, la disponibilité du clavier et les modifications de langue qui entraînent la recréation de l’activité.
  15. Comment travailler dans un ?
  16. stocke une valeur de chaîne dans un avec une clé associée pour une récupération ultérieure.

Gérer efficacement l’état d’une activité Android est essentiel pour maintenir une expérience utilisateur fluide, notamment lors des changements de configuration. En tirant parti de et Grâce à ces méthodes, les développeurs peuvent garantir que les données utilisateur et les états de l'interface utilisateur sont préservés et restaurés de manière transparente. Cette approche améliore non seulement la stabilité de l'application, mais améliore également la satisfaction des utilisateurs en fournissant une interface cohérente et fiable.