Android - restaurer la dernière consultation d'Activité
J'ai 3 différentes Activités de l'utilisateur navigue entre dans aucun ordre particulier. Mon objectif est double:
- Lorsque l'utilisateur passe à autre chose lors de l'application de la reprise de je veux le lancer lorsque l'utilisateur de gauche, même si l'application a été résilié
- Lors de la dernière reprise de l'activité, je veux le restaurer à la dernière consultation de l'état (celui-ci je pense avoir une assez bonne idée sur la façon d'arriver à)
Je pense que le problème n'est pas start/stop - où j'ai bien obtenir ce dont j'ai besoin, mais onCreate()
si l'application a été résilié. Dans ce cas il prend le relais de l'Activité que j'ai configuré dans le manifeste. Je suppose que je peux mettre quelque chose dans onCreate()
méthode de cette activité par défaut mais est-il une meilleure façon que je suis peut-être manquant?
OriginalL'auteur Bostone | 2009-09-20
Vous devez vous connecter pour publier un commentaire.
Si votre application n'a pas été "terminé" puis #1 devrait déjà fonctionner et #2, il suffit d'enregistrer les valeurs qui ne sont pas gérés automatiquement dans le Bundle dans onSaveInstanceState() puis de les restaurer dans onRestoreInstanceState().
C'est une sorte de hack, mais je pense que votre meilleure option pour le #1 dans le cas de l'application fait d'être interrompue serait d'enregistrer l'Activité la plus récente dans le onResume de chacune de vos classes d'Activité puis lorsque vous exécutez le onCreate de votre première activité, faire une vérification puis démarrer l'Activité de manière correcte... peut-être même mis dans un vide de l'Activité au début. Quelque chose comme ceci:
StartActivity:
Puis dans toutes les autres Activités (MyActivity1,2,3) enregistrer les valeurs comme suit:
Vous aurez également à gérer la sauvegarde /restauration des données pour chaque Activité manuelle. Vous pourriez économiser de toutes les valeurs dont vous avez besoin dans les préférences à l'intérieur de la onPause() de chacune des Activités de la restaurer dans le onResume().
Comment faire startActivity et puis juste de terminer() au lieu de startActivityForResult?
Faites également attention à votre activité launchMode paramètre dans le manifeste. J'avais mis "singleTask" mais le changer en "singleTop" afin de pouvoir correctement reprendre la dernière activité. J'ai trouvé une bonne explication à intridea.com/blog/2011/6/16/...
OriginalL'auteur Jeremy Logan
Gardez à l'esprit que onSaveInstanceState() n'est pas viable à long terme de l'état, c'est à dire l'utilisateur alimente le téléphone vers le bas et puis il tourne le dos à un moment indéterminé plus tard. Vous aurez besoin pour créer votre propre état à long terme mécanisme si vous souhaitez que votre état de survivre à des cycles d'alimentation.
OriginalL'auteur MattC
Je crois que vous voulez à mettre en œuvre onSaveInstanceState et qui permettra de stocker vos activités actuelles de l'état dans un bundle. Ce bundle sera passé dans votre activité dans onCreate, et vous pouvez l'utiliser pour réinitialiser les valeurs.
http://developer.android.com/guide/topics/fundamentals.html#actstate
OriginalL'auteur Whaledawg