0

我收到错误:

错误,Android框架同时调用多个片段的onCreateView()

在此处输入图像描述

我有3 个导航抽屉FrameLayout:A、B、C

1.)通过抽屉的B选项,用户到达B2片段。

2.) 用户在B2片段上按下Home 键并进入主屏幕。

3.) 用户长按 Home 键,从Android的最近活动中打开此应用程序

在这里我收到错误,如图所示,蓝色为1

我的多个片段正在获取onCreate()和事件onCreateView()onActivityCreated()因此我正在丢失B2的片段状态,我的应用程序进入默认片段,即A1(从抽屉选项 A 打开)

我还保存了我的 B2 状态onSaveInstanceState()并恢复了,onActivityCreated()但这种方法不起作用,因为onActivityCreated()首先调用 B2,然后调用 A1。因此,我的 B2 片段在前台屏幕上不可见。取而代之的是,A1 在屏幕上可见

笔记 :

.replace()在所有情况下都用于切换片段

相同的代码在 Android 5.0+(Lollipop)中运行正确,但在 4.4(和旧版本)中出现错误

任何人都可以提出任何解决方法吗?

4

1 回答 1

1

问题是由于开发人员设置 - >不保留活动(用户离开后立即销毁每个活动)

在此处输入图像描述

出现异常行为是因为我已打开此选项

当用户离开时,此选项将导致回调onDestroy()每个活动的方法。就我而言,我正在使用fragment所以事件发生了:

Fragment.onSaveInstanceState()
Activity.onStop()
Fragment.onDestroyView()
Activity.onDestroy()

制造商默认为用户关闭此选项。

这个选项有优点和缺点描述:这里

于 2015-05-22T10:49:45.330 回答