2010-12-09 17 views
0

J'appelle context.startActivity (intention) à partir d'une classe OnClickListener séparée. Pour que cela fonctionne, j'ai dû définir FLAG_ACTIVITY_NEW_TASK sur l'intention.Implications de la définition d'un indicateur sur l'intention

Tout cela fonctionne comme prévu, mais je me demande s'il y a des implications à faire cela que je ne suis pas au courant. Cela va-t-il créer des problèmes en termes de performances? Cela reflète-t-il un mauvais design de ma part?

Qu'en pensez-vous?

Répondre

0

From the Android docsFrom the Android docs: "Ce drapeau est généralement utilisé par les activités qui souhaitent présenter un comportement de type" lanceur ": elles donnent à l'utilisateur une liste de choses qui peuvent être effectuées, indépendamment de l'activité qui les lance. " "Notez que si cette méthode est appelée depuis l'extérieur d'un contexte d'activité, l'intention doit inclure l'indicateur de lancement FLAG_ACTIVITY_NEW_TASK, car, sans être démarré à partir d'une activité existante, il n'existe aucune tâche existante dans qui placer la nouvelle activité et donc il doit être placé dans sa propre tâche séparée. " Lorsque vous démarrez une nouvelle activité à chaque fois et que vous l'ajoutez à la pile, si vous quittez cette activité et en lancez une autre avec onClickListener, vous risquez de démarrer une autre activité au lieu de reprendre l'activité précédente. Je pense que la modification du drapeau à FLAG_ACTIVITY_RESET_TASK_IF_NEEDED devrait résoudre ce problème.

+0

Une erreur se produit si j'utilise un indicateur autre que FLAG_ACTIVITY_NEW_TASK. Mes seules options sont d'utiliser ce drapeau ou d'essayer de placer mon code dans la classe d'activité d'appel. Je préfère ne pas faire ce dernier tbh ... –

+0

Que dit l'erreur? – Ljdawson

+0

L'erreur indique que je dois définir le drapeau FLAG_ACTIVITY_NEW_TASK ... –