2010-11-26 50 views
0

J'ai activité principale + service. Le service appelle une deuxième activité. - Si la principale est au premier plan, tout va bien. La deuxième est ouverte au-dessus de la principale. - Si je ferme le bouton principal par le bouton "Retour", le second est ouvert au-dessus du bureau. C'est cool. - MAIS quand je ferme le main en basculant sur le bureau (appuyez sur le bouton "Home"), la seconde activité est ouverte invisible et vous ne pouvez la voir que lorsque vous passez à la tâche de l'application.Android Apporter la tâche à l'avant

Pouvez-vous m'aider à déplacer ma tâche au premier plan si l'application est en arrière-plan? J'ai essayé de faire une deuxième activité en tant que nouvelle tâche, mais cela n'aide pas.

Répondre

1

activité haut Flag dans votre tâche en tant que singleTask, que d'envoyer toute intention de cette activité si toutes les tâches sera portée à l'avant-plan sans recréer cette activité

+0

Merci, je vais essayer! – Vadim

+0

ni 'singleTask', ni 'singleInstance' n'ont pas fonctionné pour moi .. mais 'singleTop' - a fait l'affaire –

1

Cela ressemble beaucoup à un problème que j'avais. Regardez: http://groups.google.com/group/android-developers/browse_thread/thread/183340108cb847fd

Vous pouvez essayer de définir l'affinité de votre tâche, comme:

<activity android:name="activity_two" android:taskAffinity=""></activity> 

dans votre AndroidManifest.xml (tout en faisant l'activité de sa propre tâche, comme vous le dites).

Si vous ne voulez pas l'autre activité apparaisse dans la liste l'histoire récente comme une tâche distincte, vous pouvez également ajouter:

android:excludeFromRecents="true" 

à l'activité dans le manifeste.

0

Exactement le même problème qui est mentionné sur cette Question.

Résolu avec l'extrait de code suivant. i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); ce qui ramène l'activité à l'avant.

Intent i=new Intent(ApplicationStatus.this,NotifyActivity.class); 
        //i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//optional 
        i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);//will cause it to come to foreground 
        i.putExtra("ID_TimeLeft",String.valueOf(TimeLeft)); 
        startActivity(i);