web-dev-qa-db-fra.com

Comment utiliser les drapeaux d'intention dans Android?

J'ai la connaissance de différents types de drapeaux en intention mais incapable de les utiliser dans mes activités. Quelqu'un peut-il m'expliquer,

  • Comment terminer une activité et alternativement?
  • Comment manipuler la pile d'activités à l'aide d'indicateurs d'intention.
17
jyomin

Comment pouvons-nous terminer une activité et alternativement?

Pour terminer une activité, vous devez appeler la méthode d'activité finish () manuellement ou appuyer sur le bouton de retour qui lui-même appelle la méthode finish ().

Je suppose que vous posez des questions sur Android mode de lancement qui peut également être déclaré à l'aide des indicateurs d'intention, tels que:

1) FLAG_ACTIVITY_NEW_TASK - Si définie, cette activité deviendra le début d'une nouvelle tâche sur cette pile d'historique. Une tâche (de l'activité qui l'a démarrée à l'activité de tâche suivante) définit un groupe atomique d'activités vers lequel l'utilisateur peut se déplacer. Les tâches peuvent être déplacées au premier plan et à l'arrière-plan; toutes les activités à l'intérieur d'une tâche particulière restent toujours dans le même ordre.

2) FLAG_ACTIVITY_CLEAR_TOP - Si défini, et l'activité en cours de lancement s'exécute déjà dans la tâche en cours, puis au lieu de lancer une nouvelle instance de cette activité, tous des autres activités en plus seront fermées et cette intention sera livrée à l'ancienne activité (maintenant en haut) en tant que nouvelle intention.

3) FLAG_ACTIVITY_SINGLE_TOP - Si défini, l'activité ne sera pas lancée si elle est déjà en cours d'exécution en haut de la pile d'historique.

Plus d'informations sur Intents sont disponibles sur le site Développeurs Android .

Vous pouvez également lire une description détaillée avec des exemples dans ce lien .

Comment manipuler la pile d'activités à l'aide de drapeaux.

La manipulation de la pile arrière dépend de vos besoins, par exemple si vous voulez voir une certaine activité plus tard après le démarrage de l'application, vous pouvez la garder dans la pile arrière. Si vous ne voulez pas voir un écran précis, par exemple l'écran de démarrage qui n'est appelé qu'une seule fois doit être terminé lors de la navigation vers un autre écran.

21
Jitender Dev

Vous pouvez appeler finish() dans votre activité pour la terminer. Il existe des drapeaux que vous pouvez utiliser pendant cette période en fonction de vos besoins. Voici comment ils fonctionnent:

FLAG_ACTIVITY_CLEAR_TASK - Si défini dans une intention transmise à startActivity (), toutes les tâches existantes qui seraient associées à l'activité seront effacées avant le démarrage de l'activité. Autrement dit, toutes les anciennes activités sont terminées.

FLAG_ACTIVITY_CLEAR_TOP - Si défini dans une intention transmise à startActivity () et que l'activité en cours de lancement est déjà en cours d'exécution dans la tâche en cours, au lieu de lancer une nouvelle instance de cette activité, toutes les autres activités en plus sera fermé et cette intention sera livrée à l'ancienne activité en tant que nouvelle intention.

FLAG_ACTIVITY_NEW_TASK - Si elle est définie dans une intention passée à votre startActivity (), cette activité deviendra le début d'une nouvelle tâche sur cette pile d'historique.

FLAG_ACTIVITY_SINGLE_TOP - Si elle est définie dans une intention transmise à votre startActivity (), l'activité ne sera pas lancée si elle est déjà en cours d'exécution en haut de la pile d'historique.

Vous pouvez l'utiliser comme ceci:

Intent i=new Intent(this, Sample.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

Pour plus de précisions, vous pouvez vérifier ceci Intentions et aussi Back Stack and Tasks

8
Lavanya

Si vous souhaitez terminer l'activité, vous pouvez appeler la méthode finish () à partir de cette activité.

Il existe différents types de drapeaux disponibles pour l'activité:

FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_SINGLE_TOP

vous pouvez ensuite utiliser witn Intent.FLAG_ACTIVITY_NEW_TASK pour tout paramètre de méthode setFlag des activités.

Pour en savoir plus: Tâches et piles de retour et Activités

J'espère que cela peut vous aider.

0
Mustakimur Rahman