Android FragmentPagerAdapter删除应用程序简历上的片段
我有Android FragmentPagerAdapter删除应用程序简历上的片段,android,android-viewpager,adapter,empty-list,Android,Android Viewpager,Adapter,Empty List,我有android.support.v4.app.FragmentStatePagerAdapter,它承载着大约1-10个根据情况而变化的片段。 每个片段都在其视图中定义了一个GridView 若用户将应用程序放到后台,启动另一个应用程序,然后返回到我的应用程序。在一些设备上,碎片被简单地删除,应用程序会出现一个空白的屏幕。我试图切换到FragmentPagerAdapter,但结果导致了崩溃。它抛出java.lang.IllegalStateException:活动已被销毁错误。 我无法理
android.support.v4.app.FragmentStatePagerAdapter
,它承载着大约1-10个根据情况而变化的片段。
每个片段都在其视图中定义了一个GridView
若用户将应用程序放到后台,启动另一个应用程序,然后返回到我的应用程序。在一些设备上,碎片被简单地删除,应用程序会出现一个空白的屏幕。我试图切换到FragmentPagerAdapter
,但结果导致了崩溃。它抛出java.lang.IllegalStateException:活动已被销毁错误。
我无法理解系统中的混乱,因为片段包含在活动中,只有创建的活动才能委托通知片段的调用
更新1:
通过进一步调试,应用程序似乎抛出了IllegalStateException
当处于碎片页面模式时:
java.lang.IllegalStateException:活动已被销毁
位于android.support.v4.app.FragmentManagerImpl.enqueueAction(源文件:1358)
位于android.support.v4.app.backbackbackrecord.commitInternal(源文件:595)
位于android.support.v4.app.BackStackRecord.commitAllowingStateLoss(源文件:578)
位于android.support.v4.app.FragmentPagerAdapter.finishUpdate(源文件:139)
位于android.support.v4.view.ViewPager.setAdapter(源文件:415)
当处于碎片状态时,StatePageRadapter
java.lang.IllegalStateException:键f1:索引1的Fragement不再存在
位于android.support.v4.app.FragmentManagerImpl.getFragment(源文件:564)
位于android.support.v4.app.FragmentStatePagerAdapter.getItem(源文件:211)
恢复性房地产
位于android.support.v4.view.ViewPager.setAdapter(源文件:428)
非常感谢您的帮助。我想我迟到了,但如果您使用的是
FragmentPagerAdapter
,则在活动销毁后不会重新创建它,它会尝试引用活动的旧销毁实例。例如,如果您将适配器声明为静态
,则这是可能的。尝试以这样的方式更改代码,即每次创建活动时都会重新创建适配器。添加这些片段的当前代码是什么?