デバイスをローテーションした後、バックスタックまたは fragmentSupportManager にあるフラグメントは、onSaveInstanceState をアクティブにします。
ただし、最初のローテーションの後、内部のすべてが null (すべての変数) になり、アプリは null ポインター例外でクラッシュします。
フラグメントが事実上何も破壊されない (すべての値が null) 場合、なぜフラグメントがまだ存在し、onSaveInstanceState が呼び出されているのか疑問に思っています。
私のコードは非常に深く、複数の基本クラスと、フラグメントから多くのコードを持ち上げるためのプレゼンター クラスがあります。また、Activity を 1 つだけ使用し、fragmentTransaction.replace を使用しています。
必要に応じてコードを追加できますが、たくさんあります。バックスタックが機能する/フラグメントを保持する方法について、明らかな何か、または理解できない何かがあることを願っています。
私が見たが役に立たなかったリンクは
バックスタックのフラグメントで onSaveInstanceState が呼び出されますか?
もう一度、フラグメントのインスタンス状態をバックスタックに正しく保存する方法は?
バックスタックのフラグメントで onSaveInstanceState を使用しますか?
バックスタック ローテーションでフラグメントが空白 バックスタック
にフラグメントの状態を保存