我有一个活动堆栈,如下所示:
A - > B - > ç
在C中执行某些操作后,我想创建一个新的intent并将活动D添加到backstack。但在这样做时,我还想关闭活动B和C,以便堆栈更改为以下内容:
A - > d
我玩过NEW_TASKs和CLEAR_TASKs / CLEAR_TOP但是它们似乎都没有像我期望的那样工作(根据文档)。
我找到了finishActivity(int),并且如果我在活动A到B中使用requestCode启动它们,我认为我可以用它来关闭B和C.
Intent intent = new Intent(A.this, B.class);
startActivityForResult(intent, IntentHelper.INTENT_REQUEST_CODE_GROUP_BC);
,因此在B到C
Intent intent = new Intent(B.this, C.class);
startActivityForResult(intent, IntentHelper.INTENT_REQUEST_CODE_GROUP_BC);
然后在活动C中,我将启动活动D intent,finishActivity组BC并完成活动C.
Intent intent = new Intent(C.this, D.class);
startActivityForResult(intent, IntentHelper.INTENT_REQUEST_CODE_GROUP_D);
finishActivity(IntentHelper.INTENT_REQUEST_CODE_GROUP_BC);
finish();
当我在执行此操作后检查我的活动堆栈时,我看不到组BC活动完成(除了从最后一个finish()调用完成的C)。我也没有看到在假设完成的活动中调用了finishActivityFromChild(activity,int)。
对我可能缺少什么的想法?