Android 在后台堆栈中的另一个 Activity 之前启动一个新 Activity,并清除旧 Activity 之上的 Activity

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

我遇到了一个 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/

相关文章:

Android 屏幕方向尺寸

android - 错误:null value in entry: mainDexListProguardOutputFile=null

java - 单击按钮时应用程序崩溃

android-intent - 拦截蓝牙耳机上的 VOICE_COMMAND

android - 以编程方式禁用和启用 Android Activity 中的方向更改

javascript - 使用与移动端相同的 API 开发网站

java - 如何使远程 api 中的对象可序列化

android - 你如何序列化 Android Intents?

java - ImageView.getWidth() 返回 0

android - 当用户离开当前 Activity 时如何做某事