Intereting Posts
Не удалось запустить виртуальное устройство Genymotion, несовместимый процессор Предотвращение открытия операции несколько раз. Android Сохранить изображение Информация Exif не указана в Marshmallow 6.0.1 ANR в SurfaceView только для определенных устройств – Единственное исправление – короткое время сна TextView.setTextSize ведет себя ненормально – Как установить размер текста текстового вида динамически для разных экранов Как определить использование размера кучи приложения для Android Разницу и когда использовать getApplication (), getApplicationContext (), getBaseContext () и someClass.this Нажатие на уведомление не открывает указанную деятельность Уровень заряда батареи и состояние в Android Android NDK STL c ++ _ shared w / LIBCXX_FORCE_REBUILD приводит к std :: stringstream NOP Установите режим наложения Actionbar во время выполнения на Android Что (?! A) {0}? Означает в регулярном выражении Java? Android Studio 1.0.2 «minifyEnabled true» сбрасывает подписанный выпуск apk Как импортировать или копировать изображения в папку «res» в Android Studio? POJO против курсоров в Android

Разница между onResume () и onResumeFragments ()

FragmentActivity.onResume() javadoc:

Отправка onResume () в фрагменты. Обратите внимание, что для лучшего взаимодействия со старыми версиями платформы, в момент этого вызова фрагменты, связанные с активностью, не возобновляются. Это означает, что в некоторых случаях предыдущее состояние может быть сохранено, а не разрешать операции фрагментации, которые изменяют состояние. Чтобы правильно взаимодействовать с фрагментами в правильном состоянии, вместо этого вы должны переопределить onResumeFragments ().

FragmentActivity.onResumeFragments() javadoc:

Это ориентированная на фрагмент версия onResume (), которую вы можете переопределить для выполнения операций в Activity в той же точке, где ее фрагменты возобновляются. Обязательно всегда звоните в суперкласс.

Означает ли это, что платформа гарантирует, что:

  • Фрагменты никогда не будут возобновлены (их onResume() не onResume() ) при выполнении FragmentActivity.onResume() и
  • Фрагменты всегда будут возобновлены (их onResume() ) при выполнении FragmentActivity.onResumeFragments() ?

Если нет, то как разработчик может правильно использовать и проявлять бдительность в отношении вышеизложенного?

Solutions Collecting From Web of "Разница между onResume () и onResumeFragments ()"

Вызывается ли onResume() ?

Да, FragmentActivity.onResume() все равно будет вызываться (тот же контекст, что и Activity.onResume() ). Даже если вы переопределите FragmentActivity.onResumeFragments() (дополнительный метод от FragmentActivity который знает, что он содержит Fragments ).

В чем разница между onResume() и onResumeFragments() ?

FragmentActivity.onResumeFragments() является обратным вызовом функции FragmentActivity в том случае, когда возобновляемые Fragments возобновляются , что не так, как при возобновлении действия .

Это ориентированная на фрагмент версия onResume (), которую вы можете переопределить для выполнения операций в Activity в той же точке, где ее фрагменты возобновляются. Обязательно всегда звоните в суперкласс.

Когда использовать какой метод?

Если вы используете библиотеку поддержки-v4 и FragmentActivity , старайтесь всегда использовать onResumeFragments() вместо onResume() в своих реализациях FragmentActivity .

Документация FragmentActivity # onResume () :

Чтобы правильно взаимодействовать с фрагментами в правильном состоянии, вместо этого вы должны переопределить onResumeFragments ().

Разница тонкая, см. https://github.com/xxv/android-lifecycle/issues/8 :

OnResume () следует использовать для обычных Activity и onResumeFragments () при использовании библиотеки совместимости v4. Это требуется только тогда, когда приложение ожидает завершения FragmentTransaction с помощью FragmentManager.