Activity > ViewPager > Fragments
完全に破壊されて再作成されているという問題に苦しんでいます。画面orientation
が変更されたときのように、この種のシナリオを処理しています保存されたものからrestore
だけですが、デバイスがしばらくアイドル状態になり、画面が何度も表示されると、内部に保存されているのは、その null です。
コード例: 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
誰かが以前に同様の問題を抱えていて、それに取り組む方法を見つけましたか?