2017-08-29 96 views
0

我有六项活动。 比方说A,B,C,d,E,P从backStack中删除活动

我想创建这些流动

1)A - >乙 - “ç - > d - >电子移动返回甲< - B < - Visual C < - d < - 电子(DONE)

2)A - >乙 - “ç - > d - - > P

P有两个按钮

如果是 甲< - P(卸下d,C,B从返回堆栈)

如果没有 乙< - P(卸下d,C从返回堆栈)

3)A - >乙 - “ç - > d - >电子 - >点

P有两个按钮

如果有A < - P(卸下E,d,C,B从返回堆栈)

如果没有B < - P(删除E,d,C从堆栈中)

回答

0

您应该使用FLAG_ACTIVITY_CLEAR_TOP标志,以你的意图。另外我建议你学习所有的意图标志。 也许你也应该在AndroidManifest.xml您activites A和B设置launchModesingleTask

+0

我应该在哪里在活动p使用该标志,并开始新的活动,但我想回迁这是在回堆栈 –

+0

这就是为什么你应该使用launchMode安卓洗衣机。 chMode =“singleTask”到那些活动 –

+0

singleTask会将A和B活动转移到自己的任务(Separate backStack)中,我将无法实现流程2和3 –

0

检查了这一点...这里是你可能需要了解活动

之间移动

enter link description here的所有信息: https://developer.android.com/guide/components/activities/tasks-and-back-stack.html#Clearing

YourCurrentActivity.this.finish(); 
    Intent intent1 = new Intent(YourCurrentActivity.this,LoginActivity.class); 
    intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent1); 
+0

如果我完成了活动,它将从后台删除,我将无法获得流量1. –

+0

是的,你是对的我只是告诉你可以处理你的活动的方式......当调用finish()方法时你需要它。 –