2012-07-22 4 views
1

J'essaie de m'enseigner une certaine programmation android et je suis incapable d'obtenir mon application pour enregistrer et charger un progrès des utilisateurs.Comment enregistrer et recréer des activités Android

Actuellement, j'initialise mon niveau de variables et note dans mon activité. Ensuite, appelez cela de ma méthode onCreate:

if (savedInstanceState != null) { 
     // Restore value of members from saved state 
     playersScore = savedInstanceState.getInt(STATE_SCORE); 
     level = savedInstanceState.getInt(STATE_LEVEL); 
    } else { 
     playersScore = 0; 
     level = 0; 
    } 

et enfin j'ai une méthode pour économiser un paquet:

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    savedInstanceState.putInt(STATE_SCORE, playersScore); 
    savedInstanceState.putInt(STATE_LEVEL, level); 

    super.onSaveInstanceState(savedInstanceState); 
} 

Pour une raison quelconque mon paquet enregistrer coutume, des idées sur ce que je suis absent?

Répondre

0

De la documentation:

Notez qu'il est important de sauvegarder les données persistantes dans OnPause() au lieu de onSaveInstanceState (Bundle) parce que ce dernier ne fait pas partie des callbacks du cycle de vie, donc ne seront pas appelés à chaque situation décrite dans sa documentation.

0

Avez-vous regardé:

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    playersScore = savedInstanceState.getInt(STATE_SCORE); 
    level = savedInstanceState.getInt(STATE_LEVEL); 
} 

Aussi ne devrait pas:

savedInstanceState.putInt(STATE_SCORE, playersScore); 
savedInstanceState.putInt(STATE_LEVEL, level); 

soit:

savedInstanceState.putInt("STATE_SCORE", playersScore); 
savedInstanceState.putInt("STATE_LEVEL", level); 

Comme putInt() nécessite une chaîne et un entier.

+0

Désolé de dire que j'ai initialisé STATE_SCORE et STATE_LEVEL en tant que chaînes. J'ai réussi à le faire fonctionner en utilisant des données persistantes, enregistrées dans onPause(). Merci pour l'aide en tout cas – Isaac

Questions connexes