2017-09-15 1 views
0

J'ai besoin d'exécuter une activité mais effacer tout le backstack, même une activité que je lance une nouvelle.Comment effacer la pile arrière (tâche en cours) à partir d'Acrtivities

Voici un exemple.

A->B 

Activité A commence l'activité B

J'ai essayé d'utiliser des drapeaux suivants lors du démarrage l'activité B.

Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK 
Intent.FLAG_ACTIVITY_NO_HISTORY 

Mais quand l'activité B est commencé, je peux encore voir l'activité A dans une tâche. En utilisant la commande suivante

adb shell dumpsys activity | grep -i run 

et a obtenu le résultat suivant

Running activities (most recent first): 
    Run #0: ActivityRecord{5296b78c u0 com.android.launcher/com.android.launcher2.Launcher t1} 
Running activities (most recent first): 
    Run #2: ActivityRecord{528a3310 u0 com.test.app/com.test.app.B t19} 
    Run #1: ActivityRecord{52bb7a34 u0 com.test.app/com.test.app.A t19} 
    Run #0: ActivityRecord{52c7ed5c u0 com.android.documentsui/.DocumentsActivity t11} 
ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes) 
User #0: mState=RUNNING 

Comme vous pouvez le voir l'activité A est toujours là. Est-il possible d'effacer la pile arrière?

+0

-vous terminer votre activité A tout en se déplaçant vers l'activité B? –

Répondre

0

essayer comme ça,

Intent intent = new Intent(this, NewActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    finish();//you want to close your activity,just call finish 
+0

S'il vous plaît lire ma question, je suis déjà en utilisant ce drapeau – bxfvgekd

+0

êtes-vous utiliser la finition()? – Rgv

0

Essayez cette

Intent intent = new Intent(this, ActivityA.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK); 
    startActivity(intent); 

Ici IntentCompat la classe ajoutée dans la bibliothèque de soutien Android.

0

Si vous appuyez Retour dans l'activité B ne doit jamais revenir à naviguer Activité A vous pouvez le configurer dans le AndroidManifest.xml

<activity 
     android:name=".A" 
     android:noHistory="true"> 
</activity>