7
votes

Android, comment apporter une tâche au premier plan?

Ma question:

Comment puis-je lancer une nouvelle activité dans sa propre tâche tout en utilisant les règles suivantes.

1) Si l'activité existe déjà comme une racine d'une autre tâche (dans la même application), apportez la tâche au premier plan. Je ne veux pas que d'autres instances de l'activité soient créées. Je veux juste que la tâche soit la racine de venir au premier plan et que l'activité supérieure de la tâche à afficher.

Remarque: il ne s'agira que de la racine d'une tâche à la fois et qu'il n'existe que comme la racine de la tâche et nulle part ailleurs.

2) Si l'activité n'existe pas, créez cette activité dans sa propre tâche.

Pourquoi j'essaie d'y parvenir? J'ai créé quatre bas au bas de mes activités qui devraient se comporter comme des onglets. Donc, si j'appuie sur la deuxième "onglet", je souhaite que l'activité associée à cet onglet soit affichée. Mais si cela existent déjà et est au bas de sa propre tâche, j'aimerais que cette tâche soit affichée avec n'importe quelle activité en haut de la tâche.

Qu'est-ce que j'ai essayé jusqu'à présent? J'ai cherché Stackoverflow et n'a pas pu trouver une question similaire. J'ai lu http://developer.android.com/Guide /topics/fundamentals/tasks-and-back-sttack.html et http: //blog.akquinet .de / 2010/04/15 / Android-Activités-et-Tâches-Série-Intention-Drapeaux /

Je pense que je dois utiliser Flag_ACTIVITY_NEW_TASK et / ou des affinités, mais pas sûr. À la recherche d'une main s'il vous plaît.

merci, Bradley4


0 commentaires

4 Réponses :


0
votes

Vous devez utiliser flag_activity_clear_top et flag_activity_single_top Dans votre appel au démarrage ().


1 commentaires

Merci pour votre réponse. Je ne voudrais pas effacer le haut cependant. Si l'onglet a été laissée avec quatre activités dans la pile, je veux retourner à l'onglet avec ces mêmes quatre activités encore intégrées



-1
votes

1 commentaires

Merci, mais je ne pense pas que la réorganisation est nécessaire. Si l'activité que je veux lancer est au bas de la tâche, je veux le garder en bas et afficher simplement l'activité supérieure. À peu près si l'activité existe déjà, je veux juste apporter cette tâche «comme» au premier plan.



0
votes

Vous pouvez définir le mode Activity 'S ( Android: LaunchMode ) dans le AndroidManifest de sorte qu'il ne crée pas de nouvelles instances de soi-même s'il est en cours d'exécution, mais se lancera normalement lorsque ce n'est pas. Ensuite, vous pouvez commencer une activité à l'aide de Intention .


2 commentaires

Que dois-je définir le mode de lancement sur "singletsk"?


Oui. SingleTask doit s'en occuper.



21
votes

J'ai pu résoudre ceci pour la version Android> = nid d'abeille: xxx

Vous devez également les ajouter à votre manifeste: xxx / p>


4 commentaires

Obsolète dans API> = 21


@Johnytex Cependant, vous pouvez toujours gagner votre propre carte de tâche


Condition mise à jour C'est le travail pour moi: si (récemmenttasks.get (i) .baseactivity.toshortstring (). Contient (bu iilconfig.applicatio n_id))


@Narendra android.permission.get_tasks a été obsolète, pas votre nom de votre colis. Le code était bien.