我遇到了Activity backstack问题。假设我的后台包含5个活动:活动A,活动B,活动C,活动D和活动E.在某些时候,我希望用户在活动E上按下后退按钮时转到另一个活动G.活动G需要放在活动B之后,所以我希望活动C和活动D从后台堆栈中删除(否则用户将转到活动D)。
Current situation A --> B --> C --> D --> E
Preferred situation A --> B --> G
现在我明白,当活动G出现在后台时,我可以使用FLAG_ACTIVITY_CLEAR_TOP
。但活动不是。此外,我不想使用FLAG_ACTIVITY_NEW_TASK
,因为活动A和B也将消失。
另一种方法是放
android:noHistory="true"
活动C和D的清单中的,但每当用户从活动C或D中按下后退按钮时,这将使用户返回活动B.
谁能指出我正确的方向?
答案 0 :(得分:2)
You can try below
C ----startActivityForResult----------> D ---startActivityForResult--> E
handle onActivityResult with result accordingly to finish Activities, make sure its chained action calls
答案 1 :(得分:1)
当您从 C-> D 开始活动时,您需要完成();
意图意图=新意图(C.this,D.class);
<强> startActivity(意向); 强>
完成(); 强>
对于 D-&gt; G ,这种方式是可行的。