我收到错误:
错误的是,Android框架同时调用了多个片段的 onCreateView()
我有导航抽屉 3 FrameLayout
:A,B,C
1。)通过B抽屉选项,用户到达B2片段。
2.)用户在 B2 片段上按主页键,然后转到主屏幕。
3。)用户长按主页,从Android的最近活动打开此应用程序
这里我收到的错误如图所示,蓝色 1
我的多个片段正在收到onCreate()
,onCreateView()
和onActivityCreated()
个事件,所以我正在丢失 B2 的片段状态,我的应用程序转到默认片段是 A1 (从抽屉选项A打开)
我还使用onSaveInstanceState()
保存了我的B2状态,并使用onActivityCreated()
进行了恢复,但这种方法无法正常工作,因为onActivityCreated()
首先调用B2,然后调用A1秒。所以,我的B2片段在前景的屏幕上不可见。取而代之的是,A1在屏幕上变得可见
注意:
我在所有情况下都使用.replace()
来切换片段
此相同的代码在Android 5.0+(Lollipop)中运行正确,并在4.4(和旧版本)中出错
有人可以建议任何解决方法吗?
答案 0 :(得分:0)
问题是由于开发者设置 - >不要保留活动(一旦用户离开就销毁每个活动)
异常行为即将发生,因为我已将此选项设为
当用户离开时,此选项将导致回调每个活动的onDestroy()
方法。就我而言,我正在使用fragment
所以事件发生了:
Fragment.onSaveInstanceState()
Activity.onStop()
Fragment.onDestroyView()
Activity.onDestroy()
此选项默认为manufecturers用户 OFF 。
此选项的优缺点描述为:Here