Toutes les activités dans mon application, un utilisateur d'être connecté pour voir. Les utilisateurs peuvent se connecter de n'importe quelle activité. C'est une exigence de l'application. À tout moment si l'utilisateur se connecte, je veux l'envoyer à l'utilisateur le Login Activity
. À ce point, je veux que cette activité puisse être à la base de l'histoire de la pile, de sorte qu'en appuyant sur le bouton "retour" renvoie à l'utilisateur d'Android l'écran d'accueil.
J'ai vu cette question posée un peu d'endroits différents, tous ont répondu avec le même genre de réponses (que je décris ici), mais je veux la poser ici afin de recueillir les commentaires.
J'ai essayé d'ouvrir la Connexion de l'activité par l'établissement de ses Intent
drapeaux FLAG_ACTIVITY_CLEAR_TOP
qui semble faire comme il est indiqué dans la documentation, mais ne permet pas d'atteindre mon objectif de placer l'activité de Connexion au bas de l'histoire de la pile, et en empêchant l'utilisateur de naviguer de déjà-vu connecté activités. J'ai aussi essayé d'utiliser android:launchMode="singleTop"
pour l'activité de Connexion dans le manifeste, mais ce n'est pas à atteindre mon but (et ne semble pas avoir d'effet de toute façon).
Je crois que j'ai besoin de l'histoire de la pile, ou de finir tous déjà ouvert des activités.
Une option est de demander à chaque activité, en onCreate
vérifier enregistrés dans l'état, et finish()
si n'est pas connecté. Je n'aime pas cette option, le bouton de retour seront toujours disponibles pour l'utilisation, la navigation de retour que les activités elles-mêmes.
L'option suivante est de maintenir l' LinkedList
de références pour toutes les activités en cours qui est statiquement accessibles de partout (peut-être à l'aide de références faibles). Lors de la déconnexion, je vais accéder à cette liste et itérer sur tous déjà ouvert activités en invoquant finish()
sur chacun d'eux. Je vais probablement commencer à mettre en œuvre cette méthode bientôt.
Je préfère utiliser quelques - Intent
drapeau de la ruse pour ce faire, cependant. Je serais au-delà de la joie de constater que je peux réaliser mes conditions de l'application sans avoir à utiliser une des deux méthodes que j'ai décrites ci-dessus.
Est-il un moyen pour accomplir cela en utilisant Intent
ou paramètres du manifeste, ou est mon deuxième option, le maintien d'un LinkedList
a ouvert les activités de la meilleure option? Ou est-il une autre option que je suis complètement dominant?