我有两个 Android 应用程序,App A 和 App B,我正在使用 Intents 在它们之间切换。
场景: 应用程序 A 使用 Intent 打开应用程序 B。 应用程序 B 完成了其任务,现在我需要用户切换回应用程序 A。 完成 App B 中的任务后,我想返回到 App A,但 App B 不应该留在后台。
问题: 从应用程序 B 切换回应用程序 A 时,用户可以按后退按钮并导航回应用程序 B 中之前的活动,这是我不希望的。 应用程序 B 包含 4 个活动: 主活动(首次打开应用程序 B 时启动)。 从应用程序 A 打开的其他 3 个活动。 每次应用程序 A 切换到应用程序 B 时,我希望应用程序 B 的行为就像是一个新会话,后台不保留以前的活动堆栈。
目标: 我需要确保当从应用程序 B 切换回应用程序 A 时,应用程序 B 不会以其之前在堆栈中的活动保留在后台。本质上,我想在切换回应用程序 A 时清除应用程序 B 的活动堆栈,以便按后退按钮不会显示应用程序 B 的先前屏幕
我尝试过的: 我已经使用意图从应用程序 A 打开应用程序 B,反之亦然,但我似乎无法正确清除应用程序 B 的活动堆栈。 任何有关如何实现这一目标的帮助或指导将不胜感激!
从应用程序 A 启动应用程序 B 时,在 Intent 中使用以下标志来清除堆栈:
val intent = Intent(this, AppBMainActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
startActivity(intent)
FLAG_ACTIVITY_NEW_TASK
:此标志确保 App B 在新任务中启动。FLAG_ACTIVITY_CLEAR_TASK
:此标志会清除 App B 任务中所有现有的 Activity,因此当 App B 启动时,Activity 堆栈为空。