2010-05-21 3 views
0

J'ai donc fait le tutoriel Notepadv1. Ça a bien marché. Pas de problème. Je voudrais cependant quelques explications sur pourquoi le mNoteNumber se souvient du dernier numéro de l'article que j'ai créé.Didacticiel sur Android Notepadv1 - mNoteNumber persistant?

Ainsi, la classe commence comme suit:

public class Notepadv1 extends ListActivity { 
    private int mNoteNumber = 1; 

C'est bien, je comprends. La seule autre fois que la variable mNoteNumber est utilisé est lorsque vous ajoutez un élément, il crée une note avec ce nombre et incrémente au numéro suivant comme suit:

private void createNote() { 
String noteName = "Note " + mNoteNumber++; 

Ce sont les deux seules références à la variable mNoteNumber . Lorsque j'appuie sur le bouton Accueil et que j'ouvre l'application, j'ajoute une nouvelle note mais au lieu d'ajouter une seconde "Note 1" elle se souvient que la dernière note que j'ai ajoutée comme "Note 3" fait "Note 4". Donc je ne comprends pas. Est-ce que Java/Android se souvient du dernier état des variables?

Si quelqu'un pouvait me donner quelques explications ce serait génial MERCI!

Répondre

3

Frapper le bouton d'accueil ne tue pas votre application. Il le déplace simplement en arrière-plan. Lorsque vous cliquez de nouveau sur l'icône de votre application, l'application revient au premier plan. Pensez-y comme minimiser et rouvrir une fenêtre dans une application. Cependant, vous ne pouvez pas vous en souvenir en mémorisant l'état de cette manière. Lorsqu'une application est en arrière-plan, elle peut être détruite si Android décide qu'elle a besoin d'espace. Pour plus d'informations, voir le lifecycle documentation.

Si vous voulez garantir que l'état est mémorisé, vous devez conserver l'état comme expliqué dans ce document.