J'ai une classe d'activité simple avec une méthode onCreate()
qui définit un champ booléen privé si toutes les tâches d'initialisation réussissent. J'ai lu la valeur de ce booléen dans d'autres parties de la classe.Est-il nécessaire de surcharger onSaveInstanceState pour enregistrer les champs privés?
public class MyActivity extends Activity
{
private boolean initializationSucceeded;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
...
//if everything succeeded...
initializationSucceeded = true;
}
}
Est-il nécessaire de passer outre onSaveInstanceState()
pour enregistrer l'état de ce booléen, ou est-ce que j'ai bien? J'ai bien peur de ne pas savoir ce qui arrive aux membres du domaine privé pendant toutes ces affaires, alors j'espère que quelqu'un pourra m'expliquer. Merci.
Oui. Juste pour développer cette réponse (puisque je comprends mieux le cycle de vie de l'activité maintenant), il suffit de sauvegarder l'état des membres qui ont le potentiel de se changer après 'onCreate()' par exemple. un champ privé qui peut être modifié via un getter public. Si votre membre a toujours la même valeur dans 'onCreate()' et ne peut jamais être modifié par la suite, il n'est pas nécessaire de sauvegarder son état, car il n'aura jamais de valeur "dynamique". –
À peu près oui. Vous avez seulement besoin de sauvegarder l'état des variables qui sont manipulées, en particulier celles de l'utilisateur. – dannyRods