2010-12-10 4 views
2
indiquées

Scénario:Android: Comment un service démarrer une activité sans activités anciennes dans la pile derrière

Activity "A" launches Service "S". 

Appuyez sur « Home »/« retour » pour ne pas afficher « A ».

Quelque temps plus tard "S" commencer l'activité intention "B"

Intent intent = new Intent(context, MyDialog.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

Comportement actuel: "B" se présente avec "A" derrière la scène.

Ce que je veux: "B" apparaît sans "A" derrière la scène.

Note: L'activité B est une activité de dialogue

Répondre

1

D'abord, vous ne devriez pas faire cela. Les services ne doivent pas démarrer d'activités (en général). Vous ne voulez pas que Windows apparaisse sur l'utilisateur à moins qu'il ne soit spécifiquement demandé (c'est-à-dire l'application de texting).

Vous pouvez utiliser l'attribut noHistory sur l'activité A si cela vous convient. Mais comme vous le décrivez, ce que vous voyez ne devrait pas arriver, surtout si vous naviguez loin de A avec le bouton de retour.

0

Je crois que vous devriez être en mesure d'appeler finish(); comme la dernière ligne ci-dessous ce que vous avez ici. Ne me citez pas à ce sujet.

+0

Ne faites pas cela. Ne manipulez pas manuellement la pile. – Falmarri

Questions connexes