4.4 Fragment生命周期错误,同时在多个Fragment上调用onCreateView()
Fragment lifecycle error in 4.4, onCreateView() is called on multiple fragments same time
我遇到错误:
错误,Android 框架正在同时调用多个片段的 onCreateView()
我有 导航抽屉 和 3 FrameLayout
: A, B , C
1.) 通过抽屉的B选项,用户到达了B2 Fragment。
2.)用户在 B2 片段上按下 Home Key 并转到主屏幕。
3.) 用户 长按主页键 ,从 Android 的 最近 Activity 打开此应用程序
这里出现错误,如图所示 1 蓝色
我的多个片段正在获取 onCreate()
、 onCreateView()
和 onActivityCreated()
事件,因此我正在丢失 B2 和我的应用程序的片段状态转到默认片段 A1(从抽屉选项 A 打开)
我还用 onSaveInstanceState()
保存了我的 B2 状态,并用 onActivityCreated()
恢复了状态,但是这种方法不起作用,因为 onActivityCreated()
首先调用 B2,然后调用 A1。因此,我的 B2 片段在前景的屏幕上不可见。相反,A1 在屏幕上变得可见
注意:
我在所有情况下都使用.replace()
切换片段
同样的代码在 Android 5.0+ (Lollipop) 中是 运行 正确的,在 4.4(和旧版本)
中是错误的
任何人都可以提出任何解决方法吗?
问题是由于开发人员设置 -> 不保留活动(用户离开后立即销毁每个 activity)
出现异常行为是因为我已将此选项 ON
此选项将在用户离开时回调每个 activity 的 onDestroy()
方法。就我而言,我使用的是 fragment
所以事件发生了:
Fragment.onSaveInstanceState()
Activity.onStop()
Fragment.onDestroyView()
Activity.onDestroy()
制造商默认为用户关闭此选项。
此选项描述了优缺点:Here
我遇到错误:
错误,Android 框架正在同时调用多个片段的 onCreateView()
我有 导航抽屉 和 3 FrameLayout
: A, B , C
1.) 通过抽屉的B选项,用户到达了B2 Fragment。
2.)用户在 B2 片段上按下 Home Key 并转到主屏幕。
3.) 用户 长按主页键 ,从 Android 的 最近 Activity 打开此应用程序
这里出现错误,如图所示 1 蓝色
我的多个片段正在获取 onCreate()
、 onCreateView()
和 onActivityCreated()
事件,因此我正在丢失 B2 和我的应用程序的片段状态转到默认片段 A1(从抽屉选项 A 打开)
我还用 onSaveInstanceState()
保存了我的 B2 状态,并用 onActivityCreated()
恢复了状态,但是这种方法不起作用,因为 onActivityCreated()
首先调用 B2,然后调用 A1。因此,我的 B2 片段在前景的屏幕上不可见。相反,A1 在屏幕上变得可见
注意:
我在所有情况下都使用.replace()
切换片段
同样的代码在 Android 5.0+ (Lollipop) 中是 运行 正确的,在 4.4(和旧版本)
中是错误的任何人都可以提出任何解决方法吗?
问题是由于开发人员设置 -> 不保留活动(用户离开后立即销毁每个 activity)
出现异常行为是因为我已将此选项 ON
此选项将在用户离开时回调每个 activity 的 onDestroy()
方法。就我而言,我使用的是 fragment
所以事件发生了:
Fragment.onSaveInstanceState()
Activity.onStop()
Fragment.onDestroyView()
Activity.onDestroy()
制造商默认为用户关闭此选项。
此选项描述了优缺点:Here