studio implement how fragments example create android android-fragments android-fragmentactivity android-lifecycle

how - implement fragment in android



Diferencia entre onResume() y onResumeFragments() (1)

¿Se onResume() ?

Sí, se seguirá llamando a FragmentActivity.onResume() (mismo contexto que Activity.onResume() ). Incluso si reemplaza FragmentActivity.onResumeFragments() (método adicional de FragmentActivity que sabe que contiene Fragments ).

¿Cuál es la diferencia entre onResume() y onResumeFragments() ?

FragmentActivity.onResumeFragments() es una devolución de llamada en FragmentActivity cuanto a cuándo se están reanudando los Fragments que contiene , que no es lo mismo que cuando se reanuda la Activity .

Esta es la versión orientada a fragmentos de onResume () que puede anular para realizar operaciones en la Actividad en el mismo punto donde se reanudan sus fragmentos. Asegúrate de llamar siempre a la súper clase.

¿Cuándo usar qué método?

Si está utilizando la biblioteca support-v4 y FragmentActivity , intente usar siempre onResumeFragments() lugar de onResume() en sus implementaciones de FragmentActivity .

FragmentActivity # onResume () documentación :

Para interactuar correctamente con los fragmentos en su estado adecuado, en lugar de ello, debe anular onResumeFragments ().

La diferencia es sutil, consulte https://github.com/xxv/android-lifecycle/issues/8 :

onResume () debe usarse para Activity''s normal y onResumeFragments () cuando se usa la biblioteca de compatibilidad v4. Esto solo es necesario cuando la aplicación está esperando a que el FragmentManager complete los FragmentTransaction iniciales.

FragmentActivity.onResume() javadoc:

Despacho onResume () a fragmentos. Tenga en cuenta que para una mejor interoperabilidad con versiones anteriores de la plataforma, en el punto de esta llamada no se reanudan los fragmentos adjuntos a la actividad. Esto significa que, en algunos casos, el estado anterior aún puede guardarse, no permitiendo transacciones fragmentarias que modifiquen el estado. Para interactuar correctamente con los fragmentos en su estado adecuado, en lugar de ello, debe anular onResumeFragments ().

FragmentActivity.onResumeFragments() javadoc:

Esta es la versión orientada a fragmentos de onResume () que puede anular para realizar operaciones en la Actividad en el mismo punto donde se reanudan sus fragmentos. Asegúrate de llamar siempre a la súper clase.

¿Lo anterior significa que la plataforma garantiza que:

  • los fragmentos nunca se reanudarán (su onResume() no se llama) mientras se ejecuta FragmentActivity.onResume() y
  • los fragmentos siempre se reanudarán (se onResume() ) al ejecutar FragmentActivity.onResumeFragments() ?

Si no, ¿cómo puede un desarrollador utilizar correctamente y estar atento a lo anterior?