次のように、別のフラグメント A の上にフラグメント B を追加しています。
fragmentManager.beginTransaction().add(R.id.frame_container, fragment).addToBackStack("post_details").commit();
問題は、デバイスを B に戻すときに、A にアンカーが必要なことです。この場合、どのライフサイクル メソッドが呼び出されるのでしょうか?
次のように、別のフラグメント A の上にフラグメント B を追加しています。
fragmentManager.beginTransaction().add(R.id.frame_container, fragment).addToBackStack("post_details").commit();
問題は、デバイスを B に戻すときに、A にアンカーが必要なことです。この場合、どのライフサイクル メソッドが呼び出されるのでしょうか?
これは、使用するトランザクションのタイプと、フラグメントをバック スタックに追加したかどうかによって異なります。B をバックスタックに追加し、Activity がライフサイクル イベントを通過しないと仮定して、シナリオを見てみましょう。
A を追加 -> B を追加 + addToBackstack -> popBackStack
この場合、A はライフサイクル イベントを通過しません。
A を追加 -> B で置換 + addToBackStack -> popBackStack
この場合、A は onCreateView->onActivityCreated などを通過します。
もう 1 つの質問ですが、A は B が削除されているかどうかをどのように知ることができますか? 多くの方法がありますが、簡単な方法は、B が独自の onPause で Fragment.isRemoving をチェックすることです。次に、B は、ホストしているアクティビティまたはフラグメント A に、それが削除されていることを通知できます。