finishActivity(int)没有完成活动或调用finishActivityFromChild(activity,int)

时间:2017-03-23 16:18:34

标签: android android-intent android-activity back-stack

我有一个活动堆栈,如下所示:

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)。

对我可能缺少什么的想法?

0 个答案:

没有答案