我正在努力解决一个Activity > ViewPager > Fragments
完全被完全破坏和重新创建的问题,我正在处理这种情况,比如当屏幕orientation
改变时我只是restore
从data
保存的instance
状态中恢复过来,但是当我的设备空闲一段时间并且屏幕off
又一次ON
又一次,保存data
在里面的instance
是存在destroyed
和它的空值。
代码示例:
基础片段
@Override public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Icepick.saveInstanceState(this, outState);
}
@Override public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Icepick.restoreInstanceState(this, savedInstanceState);
setRetainInstance(true);
}
活动
mAdapter = new BrochureContentAdapter(getSupportFragmentManager(), models);
pager.setAdapter(mAdapter);
pager.setCurrentItem(position, true);
pager.setOffscreenPageLimit(models.size());
当屏幕旋转(重新创建)时, BaseFragment
句柄保存和恢复一切顺利,我唯一的问题是,如果屏幕一会再回来,保存的实例将被完全破坏。instance
IcePick
fragment
BaseFragment
idle
ON
以前有人遇到过类似的问题并找到解决方法吗?