Android: Claire De L'Activité De La Pile
Je vais avoir plusieurs activités au sein de mon application. et le débit est très compliqué. Lorsque je clique sur Déconnexion de l'application naviagates à l'Écran de connexion et à partir de là, l'utilisateur peut à la sortie par bouton annuler (appel system.exit(0)
)
quand je l'ai sortie ou à l'arrière du bouton, le système appelle une activité de la pile 🙁 comment puis-je effacer toutes les activités dans la pile quand j'arrive à l'écran de Connexion? l'appel de finish()
n'est pas pratique, car il ya tellement de nombreuses activités et certaines activités doivent pas être fermées lorsqu'elles sont actives, comme les indigènes de la caméra en invoquant l'activité.
validateuser logoutuser = new validateuser();
logoutuser.logOut();
Intent loginscreen = new Intent(homepage.this, Login2.class);
(homepage.this).finish();
loginscreen.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(loginscreen);
- suivez ce lien ... stackoverflow.com/questions/5139686/exit-an-android-app/...
- Double Possible de Android: Vider la pile de retour
Vous devez vous connecter pour publier un commentaire.
La plupart d'entre vous sont dans l'erreur. Si vous souhaitez fermer activité existante pile indépendamment de ce qui existe et de créer de nouvelles racines, bon jeu de paramètres est la suivante:
À partir de la doc:
IntentCompat.makeRestartActivityTask
de soutien de la bibliothèque.Lorsque vous appelez
startActivity
sur la dernière activité, vous pouvez toujours utilisercomme un drapeau sur cette intention.
Lire plus sur le drapeau ici.
Ici est une simple méthode d'assistance pour le démarrage d'une nouvelle activité de les nouveaux activité qui fonctionne à partir de l'API de niveau 4, jusqu'à la version actuelle 17:
l'appeler comme cela à partir de votre activité actuelle:
Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB
d'autreintent.addFlags(0x8000);
ne sera jamais ajoutéClair Activité Backstate par code ci-dessous:
Fait
Dans mon cas, LoginActivity a été fermé ainsi. En conséquence,
n'a pas aidé.
Cependant, la mise en
m'a aidé.
this.finish()
etsetFlags()
aussi pour effacer l'activité actuelle ?Cette décision, qui fonctionne bien:
Mais la nouvelle activité de lancement de long et vous voyez l'écran blanc un certain temps. Si c'est d'une importance critique pour utiliser cette solution de contournement:
Comment l'utiliser:
Inconvénient: toutes les activités qui doivent être fermés sur la pile doit s'étend BaseActivity
J'ai noté que vous avez demandé pour une solution qui ne repose pas sur
finish()
, mais je me demande si cela peut aider tout de même.Je surveille si une sortie de drapeau est hissé avec une classe statique variable, qui survit à la totalité de l'app durée de vie. Dans chaque pertinentes de l'activité
onResume()
, utilisezLa ExitHelper classe
Disons que dans mainActivity, un utilisateur appuie sur un bouton à la sortie - vous pouvez définir
ExitHelper.isExitFlagRaised = true;
et puisfinish()
. Par la suite, à d'autres activités qui sont repris automatiquement sera terminé.Pour Xamarin les Développeurs, vous pouvez utiliser: