在一个 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 中并且应用程序在后台被杀死(我在设置中使用了“不保留活动标志”)
并且重新联机后,Fragment C 就会加载到 MyActivity 中,
但是 FragmentManager 的后退堆栈仅包含 Fragment C。。
返回按钮会导致它出现问题
Fragment C -> 关闭 MyActivity。。
为什么会这样?
如何正确恢复 Activity 内的 FragmentManager 的后退堆栈?
假设我在一个 Activity - MyActivity 中,每次只会加载一个 Fragment。
首先我将 Fragment A 加载到其中(没有标签,我将其添加到 FragmentManager 的后退堆栈中)
然后在某个时间点,我加载了 Fragment B(同样没有标签,我将其添加到 FragmentManager 的后退堆栈中)
然后在某个时间点,我加载了 Fragment C(同样没有标签,我将其添加到 FragmentManager 的后退堆栈中)
我使用 popBackStack() 来启用“返回按钮”行为,因此每当我从 Fragment C 按返回键时,流程如下:
Fragment C -> Fragment B -> Fragment A -> 关闭 MyActivity。。
一切都很完美 :-)
但是如果我在 Fragment C 中并且应用程序在后台被杀死(我在设置中使用了“不保留活动标志”)
并且重新联机后,Fragment C 就会加载到 MyActivity 中,
但是 FragmentManager 的后退堆栈仅包含 Fragment C。。
返回按钮会导致它出现问题
Fragment C -> 关闭 MyActivity。。
为什么会这样?
如何正确恢复 Activity 内的 FragmentManager 的后退堆栈?