gpt4 book ai didi

android - 如何在 Activity 中恢复 fragment 返回堆栈(应用程序在后台被杀死后)

转载 作者:可可西里 更新时间:2023-11-01 19:05:49 24 4
gpt4 key购买 nike

在 Android 应用中-

假设我在一个 Activity - MyActivity 中,它一次包含一个 Fragment

首先,我将 Fragment A 加载到它(没有标签,我将它添加到 FragmentManager 的后台堆栈)

然后在某个时候我加载了Fragment B(同样没有标签我将它添加到FragmentManager的后栈)

然后在某个时候我加载了Fragment C(同样没有标签我将它添加到FragmentManager的后栈)

我正在使用 popBackStack() 来启用后退按钮 行为,因此每当我从Fragment C 按下后退时,流程如下:

fragment C -> fragment B -> fragment A -> 关闭 MyActivity..

一切都很完美:-)

但如果我在 Fragment C 中并且应用程序在后台被杀死(我在设置中使用了“不保留 Activity 标志”)

并且重新上线 Fragment C 加载到MyActivity

但是 FragmentManager 的返回堆栈只包含 Fragment C..

后退按钮搞砸了

fragment C -> 关闭 MyActivity..

为什么会这样?

如何在 Activity 中正确恢复 FragmentManager 的返回堆栈?

最佳答案

尝试使用 alwaysRetainTaskState在你的根 Activity 上。 Android 会自动清除 Activity 后台堆栈,因为它假定您已经很长时间没有使用该应用程序并且用户希望从头开始。

 <activity android:alwaysRetainTaskState="true"/>

此设置将阻止该行为,并且可能会导致该行为被 fragment 管理器继承。

关于android - 如何在 Activity 中恢复 fragment 返回堆栈(应用程序在后台被杀死后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com