我有一个仪表板活动,我可以从这里移动到某个活动流程,如下所示 -
1) A(DashboardActivity)> B > C > D
2) A(DashboardActivity)> E > F
3) A(DashboardActivity)> G > H > I
假设我已经以这样的方式访问了应用程序,现在我正在进行如下活动D(使用步骤1) -
A > B > C > D
(当前活动任务堆栈)
现在我想以这样的方式启动活动F(第2步活动)
在后面,它来到E然后A,并将从应用程序出来。 on Press back用户应该看到这个活动流程 -
F > E > A > Out from the application`
我不想再看一下活动痕迹D.我怎样才能在申请中实现这一目标?
答案 0 :(得分:0)
您可以使用TaskStackBuilder执行此操作。这将帮助您创建后台堆栈。
在活动D中,使用此代码启动活动F
TaskStackBuilder.create(this)
.addParentStack(AActivity.class)
.addNextIntent(new Intent(this, AActivity.class))
.addNextIntent(new Intent(this, EActivity.class))
.addNextIntent(new Intent(this, FActivity.class))
.startActivities();
使用TaskStackBuilder
你的最小sdk版本应该是16或更高。
对于少于16的sdk,您可以手动签入onBackPressed
并启动活动。
在活动F中:
@Override
public void onBackPressed(){
Bundle extras = getIntent().getExtras();
if (extras.containsKey("FROM_ACTIVITY_D_FOR_STACK")){
// start Activity E
}else{
super.onBackPressed();
}
}
对于要添加回堆栈的其他活动