J'ai une notification qui démarre mon activité et transmet un message à l'aide de la fonction putExtra() de l'intention. Le message est ensuite affiché à l'utilisateur dans la fonction onCreate de l'activité. Lorsque l'application est redémarrée en raison d'un changement d'orientation, le message s'affiche à nouveau car il figure toujours dans les données regroupées de l'intention.Modifier les données du regroupement d'intention avant qu'une activité soit recréée après le changement d'orientation
Comment puis-je supprimer les données supplémentaires?
J'ai essayé les suivantes:
Bundle bundle = getIntent().getExtras();
if (bundle.getBoolean("showMessage")) {
// ... show message that is in bundle.getString("message")
// remove message
bundle.remove("showMessage");
}
Mais le message sera affiché encore après l'orientation a changé, semble être l'intention utilisé n'est pas celui que je changé, mais l'original. La seule solution de contournement que j'ai trouvée consiste à enregistrer le showMessage en outre dans o nSaveInstanceState()
. Existe-t-il un autre moyen? Ou est-ce le chemin à parcourir?
Désolé, -1. 'onSaveInstanceState' est la bonne façon de le faire, comme l'a souligné @CommonsWare. –