これが私が抱えている問題です。ビュー V にある FragmentPagerAdapter FPA に含まれるフラグメント F を持つアクティビティ A があります (A->V->FPA->F)。
A が破棄される (またはこの場合はスワップ アウトされる) と、F がアタッチされ、V にある FPA になります。ただし、A が再作成されると (たとえば、誰かが [戻る] ボタンを押してアクティビティに戻る)、V FPA が存在しないため、F は (アタッチされた状態で) 再作成されますが、存在しないものに対して作成されるため、ビュー階層にはまったく含まれません。次に、FPA がこのフラグメントで instanceiateState を試行すると、それをアタッチしようとしますが、既に何もない状態にアタッチされているため何もしません。
これを修正するには明らかにいくつかの方法があります (たとえば、V と FPA をアクティビティの onCreate に存在させて、フラグメントが作成されたときにどこかに移動できるようにします)、FPA と FPA を引き続き遅延して作成したいと思いますVは必要な時だけ。
したがって、F の状態を onDestroy() で detached に更新することが望ましいようです。ただし、状態は onPause() に保存されます。つまり、ここでは運が悪いということです。
AのonDestroy()でFの保存された状態を更新する方法はありますか? 「アクティビティが破壊された場合、このフラグメントを復元しないでください」と言う方法はありますか? 私が考慮していない、これについての他の明らかな考え方はありますか?ここで物事を間違った方向に進めているように感じます。