Android 在后台堆栈中开始另一个 activity 之前的新 activity 并清除旧 activity 之上的活动
Android start a new activity before another activity in backstack and clear activities above old activity
我遇到了一个 Activity backstack 问题。假设我的后台有 5 个活动:比如 Activity A、Activity B、Activity C、Activity D 和 Activity E。在某个时候我希望用户在按下 Activity E 上的后退按钮时转到另一个 Activity G。Activity G 需要放在 Activity B 之后,所以我想要 Activity C 和 Activity D 从 backstack 中移除(否则用户将转到 Activity D)。
Current situation A --> B --> C --> D --> E
Preferred situation A --> B --> G
现在我明白我可以使用 FLAG_ACTIVITY_CLEAR_TOP
当 Activity G 会在后台。但是 Activity 不是。我也不想使用 FLAG_ACTIVITY_NEW_TASK
因为这样 Activities A 和 B 也会消失。
另一种方法是将
android:noHistory="true"
在活动 C 和 D 的清单中,但这会使用户在每次用户从 Activity C 或 D 中按下后退按钮时返回到 Activity B。
谁能给我指出正确的方向?
当您从 C->D 开始 activity 时,您输入 finish();
Intent intent=new Intent(C.this,D.class);
startActivity(意图);
完成();
同样的方法 D->G 这样就可以了。
You can try below
C ----startActivityForResult----------> D ---startActivityForResult--> E
handle onActivityResult with result accordingly to finish Activities, make sure its chained action calls
我遇到了一个 Activity backstack 问题。假设我的后台有 5 个活动:比如 Activity A、Activity B、Activity C、Activity D 和 Activity E。在某个时候我希望用户在按下 Activity E 上的后退按钮时转到另一个 Activity G。Activity G 需要放在 Activity B 之后,所以我想要 Activity C 和 Activity D 从 backstack 中移除(否则用户将转到 Activity D)。
Current situation A --> B --> C --> D --> E
Preferred situation A --> B --> G
现在我明白我可以使用 FLAG_ACTIVITY_CLEAR_TOP
当 Activity G 会在后台。但是 Activity 不是。我也不想使用 FLAG_ACTIVITY_NEW_TASK
因为这样 Activities A 和 B 也会消失。
另一种方法是将
android:noHistory="true"
在活动 C 和 D 的清单中,但这会使用户在每次用户从 Activity C 或 D 中按下后退按钮时返回到 Activity B。
谁能给我指出正确的方向?
当您从 C->D 开始 activity 时,您输入 finish();
Intent intent=new Intent(C.this,D.class);
startActivity(意图);
完成();
同样的方法 D->G 这样就可以了。
You can try below
C ----startActivityForResult----------> D ---startActivityForResult--> E
handle onActivityResult with result accordingly to finish Activities, make sure its chained action calls