Android中如何清除中间Activity?

问题描述 投票:0回答:1

我的屏幕流程是:

活动: 应用首页 -> A -> B -> C -> Z

尝试解决用例: 当我从 C 创建活动 Z 时 -> 完成活动 C 和 B。

期望: 按 Z 处的后退按钮应使用户进入活动 A。

我的解决方案(不起作用)

在新堆栈中启动 Activity B(使用 Intent.FLAG_ACTIVITY_NEW_TASK)。启动 Activity Z 时,对 Activity C 使用 finishAffinity()。预计新堆栈将消失,留下先前的堆栈:Home -> Activity A。 但是,按 Z 上的后退按钮会关闭应用程序。

我还尝试在启动 Z 时在 Activity C 上使用 finishAndRemoveTask() 但似乎什么也没做。有什么建议吗?

PS:我不想在跳转到 C 时完成 B,因为需要在那里提供返回导航。

谢谢!

android android-activity
1个回答
0
投票

其中一种可能的方式是使用来自 androidx 的 导航组件。您将拥有包含活动和片段的后退堆栈,这些活动和片段允许您控制通过弹出方法按下后退按钮时返回到图表中的上一个目的地的位置。

© www.soinside.com 2019 - 2024. All rights reserved.