我想检查具有特定类的对象是否在后堆栈中。如果是,我将使用 FLAG_ACTIVITY_CLEAR_TOP,如果不是,我想弹出到 root 并推送 Class。
假设我在堆栈中有 A、C、D 并且我想添加 B。由于堆栈中不存在 B(此处),我希望堆栈变为 A、B(清除 C、D 并推送 B)。
如果我在堆栈中有 A、B、C、D,它会弹出 C、D 而不会压入 B。
有没有办法做到这一点而不清除堆栈中的所有内容并使用“GoToClass”的Intent参数推送A类并在加载-root-A后推送类“GoToClass”?
来自 Android 文档:
公共静态最终 int FLAG_ACTIVITY_CLEAR_TOP
如果设置,并且正在启动的活动已经在当前任务中运行,那么不会启动该活动的新实例,而是关闭它上面的所有其他活动,并且此 Intent 将被传递到(现在顶部)作为新意图的旧活动。
例如,考虑一个由以下活动组成的任务:A、B、C、D。如果 D 调用 startActivity() 的 Intent 解析为活动 B 的组件,则 C 和 D 将完成,B 接收给定的 Intent ,导致堆栈现在是:A,B。