Android Effacement d'une pile d'activités


Exemple

Parfois, vous voudrez peut-être commencer une nouvelle activité tout en supprimant les activités précédentes de la pile arrière, de sorte que le bouton Précédent ne vous les renvoie pas. Par exemple, vous pouvez lancer une application sur l'activité de connexion pour accéder à l'activité principale de votre application, mais lorsque vous vous déconnectez, vous souhaitez être redirigé vers Login sans avoir à revenir en arrière. Dans un cas comme celui-ci, vous pouvez définir l'indicateur FLAG_ACTIVITY_CLEAR_TOP pour l'intention, ce qui signifie que l'activité en cours d'exécution est déjà en cours dans la tâche en cours (LoginActivity), au lieu de lancer une nouvelle instance de cette activité. il sera fermé et cette intention sera livrée à l’ancienne activité (désormais au-dessus) en tant que nouvelle intention.

Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

Il est également possible d'utiliser les indicateurs FLAG_ACTIVITY_NEW_TASK avec FLAG_ACTIVITY_CLEAR_TASK si vous souhaitez effacer toutes les activités de la pile arrière:

Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
// Closing all the Activities, clear the back stack.
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);