FragmentActivity.onResume()
javadoc:
OnResume()をフラグメントにディスパッチします。プラットフォームの古いバージョンとの相互運用を改善するために、この呼び出しの時点では、アクティビティに添付されたフラグメントは再開されないことに注意してください。これは、場合によっては、以前の状態がまだ保存され、状態を変更するフラグメントトランザクションが許可されない可能性があることを意味します。適切な状態のフラグメントを正しく操作するには、代わりにonResumeFragments()をオーバーライドする必要があります。
FragmentActivity.onResumeFragments()
javadoc:
これはonResume()のフラグメント指向バージョンであり、フラグメントが再開されるのと同じポイントでアクティビティの操作を実行するためにオーバーライドできます。必ずスーパークラスに電話してください。
上記は、プラットフォームが次のことを保証することを意味しますか?
onResume()
の実行中に決して再開されません(それらのFragmentActivity.onResume()
は呼び出されません)。onResume()
の実行中に常に再開されます(FragmentActivity.onResumeFragments()
が呼び出されます)。そうでない場合、開発者はどのようにして上記を正しく利用し、警戒することができますか?
onResume()
は呼び出されますか?
はい、FragmentActivity.onResume()
は引き続き呼び出されます(Activity.onResume()
と同じコンテキスト)。 FragmentActivity.onResumeFragments()
をオーバーライドしても(FragmentActivity
が含まれていることを知っているFragments
からの追加メソッド)。
onResume()
とonResumeFragments()
の違いは何ですか?
FragmentActivity.onResumeFragments()
は、含まれているFragmentActivity
が再開しているときに関するFragments
のコールバックです。これはActivity
が再開したとき。
これはonResume()のフラグメント指向バージョンであり、フラグメントが再開されるのと同じポイントでアクティビティの操作を実行するためにオーバーライドできます。必ずスーパークラスに電話してください。
いつどの方法を使用しますか?
Support-v4ライブラリとFragmentActivity
を使用している場合は、FragmentActivity
実装でonResumeFragments()
ではなくonResume()
を常に使用するようにしてください。
FragmentActivity#onResume()ドキュメント :
適切な状態のフラグメントを正しく操作するには、代わりにonResumeFragments()をオーバーライドする必要があります。
違いは微妙です。 https://github.com/xxv/Android-lifecycle/issues/8 を参照してください。
onResume()は、v4互換ライブラリを使用する場合の通常のアクティビティおよびonResumeFragments()に使用する必要があります。これは、アプリケーションがFragmentManagerによって最初のFragmentTransactionが完了するのを待機している場合にのみ必要です。