对于重新排序到前台,将继承的活动视为相同
Treat inherited Activities as the same for Reorder to Front
我有一个包含 3 个活动 A、B 和 C 的项目。ActivityB 扩展了 A。
A 和 B 应该是单个实例,因此我在切换活动时将 Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
添加到我的意图中。
这可以正常工作,因为导航 A > B > A > C > B 只给我返回堆栈 A > C > B。
但理想情况下,我希望 A 和 B 在后台堆栈的上下文中被同等对待,因为它们对用户来说看起来是一样的,它们只是在表面上存在差异。
这不是我自己的项目,所以我没有更改 Activity 结构的灵活性。有没有办法让A和B被同等对待?我尝试了 taskAffinity,但我不想在最近的任务中单独输入,也不想在新任务中显示可见的 switch/animation。我也考虑过CLEAR_TOP,但重要的是不要从堆栈中删除其他活动(即C)
我期望的是导航 A > B > A > C > B 应该只给我返回堆栈 C > B。
不,没有办法让 Android 在返回堆栈方面对这 2 个活动一视同仁。
您应该将代码从 ActivityB 移动到 ActivityA 并在 Intent
中使用 "extra" 来指示 Activity 是否应该运行喜欢 A
或喜欢 B
。这是能够确保 A
或 B
中的一个,但不会同时出现在堆栈中的唯一方法。
我有一个包含 3 个活动 A、B 和 C 的项目。ActivityB 扩展了 A。
A 和 B 应该是单个实例,因此我在切换活动时将 Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
添加到我的意图中。
这可以正常工作,因为导航 A > B > A > C > B 只给我返回堆栈 A > C > B。
但理想情况下,我希望 A 和 B 在后台堆栈的上下文中被同等对待,因为它们对用户来说看起来是一样的,它们只是在表面上存在差异。
这不是我自己的项目,所以我没有更改 Activity 结构的灵活性。有没有办法让A和B被同等对待?我尝试了 taskAffinity,但我不想在最近的任务中单独输入,也不想在新任务中显示可见的 switch/animation。我也考虑过CLEAR_TOP,但重要的是不要从堆栈中删除其他活动(即C)
我期望的是导航 A > B > A > C > B 应该只给我返回堆栈 C > B。
不,没有办法让 Android 在返回堆栈方面对这 2 个活动一视同仁。
您应该将代码从 ActivityB 移动到 ActivityA 并在 Intent
中使用 "extra" 来指示 Activity 是否应该运行喜欢 A
或喜欢 B
。这是能够确保 A
或 B
中的一个,但不会同时出现在堆栈中的唯一方法。