Ответ 1
Вызов onResume()
?
Да, FragmentActivity.onResume()
все равно будет вызываться (тот же контекст, что и Activity.onResume()
).
Даже если вы переопределите FragmentActivity.onResumeFragments()
(дополнительный метод из FragmentActivity
, который знает, что он содержит Fragments
).
В чем разница между onResume()
и onResumeFragments()
?
FragmentActivity.onResumeFragments()
- это обратный вызов на FragmentActivity
в том случае, когда он содержит Fragments
, который не совпадает с повторением Activity
.
Это ориентированная на фрагмент версия onResume(), которую вы можете переопределить для выполнения операций в Activity в той же точке, где ее фрагменты возобновлены. Обязательно всегда обращайтесь к суперклассу.
Когда использовать какой метод?
Если вы используете библиотеку поддержки-v4 и FragmentActivity
, всегда старайтесь использовать onResumeFragments()
вместо onResume()
в реализациях FragmentActivity
.
Документация FragmentActivity # onResume():
Чтобы правильно взаимодействовать с фрагментами в правильном состоянии, вместо этого вы должны переопределить onResumeFragments().
Разница тонкая, см. https://github.com/xxv/android-lifecycle/issues/8:
onResume() следует использовать для обычной Activity и onResumeFragments() при использовании библиотеки совместимости v4. Это требуется только тогда, когда приложение ожидает, что начальное FragmentTransaction будет завершено FragmentManager.