我有一个MainActivity。此MainActivity包含带有片段的TabLayout。我从Fragment中的MainActivity函数调用时,例如用户更改了选项卡。
到目前为止一切正常。但是,当应用程序不在前面并且恢复时,并且再次调用相同的函数时,我经常会遇到nullpointer异常。似乎在OnCreateView中创建的对象被销毁了?
在这种情况下,最佳做法是什么?
答案 0 :(得分:0)
每当您的应用程序从后台进入前台时,有时活动可能已被杀死,系统会使用您在onSaveInstanceState中传递的包创建另一个实例。因此,活动实例,附加的片段被破坏,这是新实例,它不知道片段。
在向Activity添加或删除片段之前,需要使用fragment.isAdded()和片段isVisible()验证片段状态。可能在那里你可能有空指针异常。希望它有所帮助。