私はいくつかの奇妙な行動を理解しようとしています。FragmentA を R.id.fragment_container に追加するために onCreate() でメソッドを呼び出す ActivityA があります。FragmentA の内部には、ActivityA のフラグメント マネージャー (getActivity().getSupportFragmentManager()) を使用して FragmentB をアタッチするボタンがあり、R.id.fragment_container を置き換えて、バックスタックにも追加します。また、新しい ActivityB を開始する別のボタンもあります。ActivityB から戻ると、ActivityA onResume()、FragmentA onResume() を取得します。しかし、FragmentB から戻ると、FragmentB onCreateView()、FragmentB onActivityCreated()、2 つの onResume() が返されます。
だから私の質問は...フラグメントが置き換えられて再接続されたときではなく、新しいアクティビティが開始されたときにビューステートが保存されるのはなぜですか。ビューを再作成してそのデータを再度取得するよりも、その状態を復元する方がはるかに優れているように見えます。これは私が期待するものとは反対の動作のように見えるので、フラグメント状態の保存/復元手順などが明らかに欠けています。ActivityBが起動され、バックプレスで復元されたときにアクティビティがFragmentA(およびActivityA)を一時停止しているようですが、FragmentBがアタッチされているとFragmentAは完全に破壊されます。これを防ぐ方法があると確信していますが、それを理解できないようです。考え?