Question

J'ai une variable que j'ai sauvegardée avec succès et restaurée à l'aide de OnsaveInstancestate

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState); // the UI component values are saved here.
    outState.putDouble("VALUE", liter);
    Toast.makeText(this, "Activity state saved", Toast.LENGTH_LONG).show();
}

Mais cela ne fonctionne que si l'activité est détruite.Je souhaite enregistrer la même variable en remplaçant la méthode onpaause () et de récupérer lorsque l'activité n'est plus suspendue des idées sur la manière de faire cela est grandement apprécié

Était-ce utile?

La solution

Comme vous l'avez découvert, onSaveInstanceState n'est utile que dans des situations où vous devez recréer la même "instance" de l'activité après avoir été détruit par le système d'exploitation, généralement parce qu'il est trop loin dans la pile arrière àRestez en vie sous pression de mémoire.

Enregistrement de vos données dans onPause est en effet la voie à suivre pour la persistance qui dure au-delà d'une seule exécution de votre activité.Pour obtenir ce travail, vous avez plusieurs options, notamment:

Autres conseils

Vous pouvez simplement assigner votre variable foo au membre de classe mFoo dans onPause à condition que vous sauvegardiez également mFoo dans le bundle d'état dans onSaveInstanceState.Il en va de même pour le scénario de restauration.

Si vous choisissez d'enregistrer l'état d'activité dans les préférences partagées, vous pouvez consulter le composant GNStateManager de la bibliothèque que j'ai écrite pour faciliter le stockage et la récupération des champs obligatoires de l'activité marqués mon annotation @GNState.Il est très simple à utiliser.D'autres états d'objet de classe singleton peuvent également être enregistrés.Cliquez ici pour obtenir des informations sur la configuration et l'utilisation: https://github.com/noxiouswinter/gnlib_android/wiki/gnstatemanager

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top