2010-06-10 4 views
0

J'écris une application android qui maintient beaucoup de données "state" ... certaines de ces données peuvent être sauvegardées sous la forme de onSaveInstanceState mais certaines d'entre elles sont simplement complexes à enregistrer en mémoire.Android - L'ouverture du téléphone supprime l'état de l'application

Mon problème est que glisser le téléphone ouvert détruit/recrée l'application, et je perds tout mon état d'application dans le processus. La même chose arrive avec le bouton "retour", mais j'ai surchargé cette fonction sur mon chemin. Y at-il un moyen de surcharger l'ouverture du téléphone pour l'empêcher de se produire?

Merci d'avance.

Répondre

1

Je pense que la chose intelligente à faire est de gérer correctement l'événement de changement écran d'orientation et être en mesure Pour enregistrer et recharger vos données par programme, plutôt que d'essayer de combattre le téléphone et la façon dont le système d'exploitation est destiné à fonctionner. Il y a un article dans le guide de dev intitulé Faster Screen Orientation Change que vous pouvez trouver utile.

De plus, le Shelves sample app traite bien de cet événement, et a quelques bons exemples d'annulation et de restauration de tâches asynchrones lorsque l'orientation change.

0

Vous pouvez essayer de remplacer la méthode onConfigurationChanged dans votre activité;

ou vous pouvez essayer de sauvegarder votre configuration dans une surchargée onRetainNonConfigurationInstance et récupérer les informations contenues dans le onCreate en utilisant this.getLastNonConfigurationInstance();

Questions connexes