2010-02-22 4 views
0

J'ai une application de base avec des entrées de texte, une entrée spinner, et une deuxième entrée spinner dont le tableau dépend d'un paramètre modifié dans le menu Options.Comment sauvegardez-vous l'état de votre activité en quittant? Android

Actuellement, lorsque j'appuie sur Accueil ou sur Retour pendant que je suis dans mon application, je retourne au bureau ou je reviens sur les anciennes entrées que j'ai mises récemment. Comment puis-je empêcher mon application d'ouvrir plusieurs instances de sorte qu'il n'y ait qu'une seule instance en cours d'exécution à un moment donné, puis comment enregistrer les données saisies dans les entrées et les paramètres choisis dans mon menu d'options? Je suis un peu nouveau à Java, donc je m'excuse si c'est un problème simple.

Répondre

2

Dans votre acticité, remplacez onSaveInstanceState et onRestoreInstanceState. Ces méthodes vous permettront d'enregistrer des données dans un Bundle Vous pouvez également enregistrer des données à Preferences. Dans toutes mes applications, je substitue à la fois onSaveInstanceState et onRestoreInstanceState pour enregistrer et charger des valeurs dans un ensemble. Je sauvegarde également les données dans les préférences de onPause et charge les préférences dans onResume. De plus en onCreate (Bundle savedInstanceState) Je fais un chèque comme celui-ci

if(savedInstanceState != null) 
    { 
     m_mainView.restoreInstanceState(savedInstanceState); 
    } 
    else 
    { 
     m_mainView.loadGameFromDatabase(getPreferences(MODE_PRIVATE)); 
    } 

Ces pratiques ont toujours travaillé pour moi.

+0

Pouvez-vous me fournir un exemple d'exemple? –

+0

'onSaveInstanceState' n'est pas appelé lorsque l'utilisateur existe explicitement l'application en appuyant sur le bouton retour ou home. Cela ne peut être utilisé que lorsque l'OS décide de détruire votre activité sans votre intervention. –

0

Vous devrez utiliser méthode surchargée sur votre activité et persister vos données quelque part (probablement les préférences partagées). Puis onResume vous devez les lire depuis le stockage de persistance et remplir vos contrôles.

onSaveInstanceState et restoreInstanceState n'est pas votre ami lorsque vous souhaitez gérer les pressions de bouton arrière ou à la maison.