Comment faire une application android pour retourner à la dernière activité ouverte lorsque relancé?
Il est possible de configurer une application android de sorte que si un utilisateur a ouvert votre application, lancé de nombreuses activités, puis retourne à l'écran d'accueil et relance votre application, au lieu d'aller à la principale activité de la place, ils sont pris à l'activité la plus élevée sur la pile (la plus récente activité de votre application)?
- La meilleure solution et la plus propre : stackoverflow.com/a/10598619/5494342
- Pour l'enregistrement, le commentaire précédent est discutable. On pourrait aussi dire que la réponse dans ce lien est inélégant bien qu'éventuellement acceptable, et est livré avec le catch que cela ne fonctionne pas 100% du temps. Voir les commentaires dans le a accepté de répondre à cette question avant de choisir la solution qui convient à votre situation.
Vous devez vous connecter pour publier un commentaire.
Lorsqu'il est lancé via l'icône sur l'écran d'accueil, Android sera toujours de démarrer l'activité avec les
android.intent.action.MAIN
le filtre dans votreAndroidManifest.xml
, à moins que l'application est déjà en cours d'exécution (dans ce cas, il sera bien évidemment restaurer l'activité sur le dessus de la pile).Pour atteindre ce que vous avez décrit, vous pouvez simplement stocker la dernière activité visible dans
SharedPreferences
et ont un Répartiteur activité qui démarre la dernière activité selon les préférences.Donc, dans chaque activité, vous souhaitez re-démarrer automatiquement:
Et un Répartiteur activité semblable à la suivante:
Remarques
onPause
remplacerandroid.intent.action.MAIN
actionunless the application is already running (in which case it will obviously restore the activity on top of the stack).
- Cela ne fonctionne pas, lors de la première Activité en ligne aandroid:launchMode="singleTask"
. Toute autre Activité ne sera pas rétablie, puis en tant que bien. J'ai attendu le comportement de l'OP voulait atteindre, mais il ne fonctionne pas pour moi. Néanmoins, la suppression singleTask a été la solution pour moi.Il n'est pas complexe. Vous avez juste besoin de manipuler le manifeste.
AndroidManifest.xm
Lire à propos de la "android:exportées" & " android:alwaysRetainTaskState ici:
android:exportées
android:alwaysRetainTaskState
Ce est le comportement par défaut, et cette question a été posée à plusieurs reprises avant:
Android: garder tâche de l'activité de la pile après le redémarrage de la MAISON
Android Exécuter l'application à partir de la dernière Activité
Noter que si vous êtes le lancement de votre application à partir d'Eclipse, c'est ce qui brise cette fonctionnalité par défaut. La modification de votre configuration de lancement pour lancer aucune activité ne devrait arranger les choses.
Cependant, comme ce comportement a été corrigé dans la Version 0.9.6 du plugin ADT pour Eclipse dans les dernières semaines, vous n'avez plus besoin de cette solution de contournement: