我遇到了一个 Activity backstack 问题。假设我的后台堆栈中有 5 个 Activity :如 Activity A、 Activity B、 Activity C、 Activity D 和 Activity E。在某些时候,我希望用户在按下 Activity E 上的后退按钮时转到另一个 Activity G。 Activity G 需要放在 Activity B 之后,因此我希望 Activity C 和 Activity D 从后台堆栈中删除(否则用户将转到 Activity D)。
现状A --> B --> C --> D --> E
首选情况 A --> B --> G
现在我明白,当 Activity G 位于后台堆栈时,我可以使用 FLAG_ACTIVITY_CLEAR_TOP
。但 Activity 不是。另外,我不想使用 FLAG_ACTIVITY_NEW_TASK
因为这样 Activity A 和 B 也会消失。
另一种方法是放置
android:noHistory="true"
在 Activity C 和 D 的 list 中,但这将使用户每次在 Activity C 或 D 中按下后退按钮时都会返回到 Activity B。
谁能给我指出正确的方向?
最佳答案
You can try below
C ----startActivityForResult----------> D ---startActivityForResult--> E
handle onActivityResult with result accordingly to finish Activities, make sure its chained action calls
关于Android 在后台堆栈中的另一个 Activity 之前启动一个新 Activity,并清除旧 Activity 之上的 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37942006/