¿Cuáles son las diferencias entre actividad y fragmento?

80

Según mi investigación, existe una diferencia significativa en el concepto de backstack y cómo existen:

Actividad

  • Cuando activityse coloca una a la backstackdel activitiesusuario puede navegar de regreso a la actividad anterior simplemente presionando el back botón.

  • Activity puede existir de forma independiente.

Fragmento

  • Cuando fragmentse coloca un a la actividad, tenemos que solicitar que se guarde la instancia llamando addToBackstack()durante el fragment transaction.

  • Fragment tiene que vivir dentro del activity

¿Existen diferencias adicionales?

Devrath
fuente
8
No es necesario declarar fragmentos en el manifiesto. Tenemos fragmentos anidados pero no podemos tener actividades anidadas
hoomi

Respuestas:

38

Principales diferencias entre actividad y fragmento

  1. La actividad es un componente de la aplicación que proporciona una interfaz de usuario donde el usuario puede interactuar. El fragmento es parte de una actividad, que aporta su propia IU a esa actividad.
  2. Para la tableta o si el móvil está en horizontal, al usar el fragmento podemos mostrar dos listas como la única lista para mostrar el nombre del estado y otras listas mostrarán la descripción del estado en una sola actividad, pero usando Actividad no podemos hacer lo mismo.
  3. La actividad no depende del fragmento. Pero el fragmento depende de la actividad, no puede existir de forma independiente.
  4. sin usar un fragmento en Activity, no podemos crear una interfaz de usuario de múltiples paneles. pero usando múltiples fragmentos en una sola actividad podemos crear una interfaz de usuario de múltiples paneles.
  5. Si creamos un proyecto usando solo Activity, entonces es difícil de administrar, pero si usamos fragmentos, la estructura del proyecto será buena y podremos manejarlo fácilmente.
  6. Una actividad puede contener 0 o varios fragmentos. Un fragmento se puede reutilizar en múltiples actividades, por lo que actúa como un componente reutilizable en las actividades.
  7. La actividad tiene su propio ciclo de vida, pero el fragmento tiene su propio ciclo de vida.
  8. Para Activity, solo necesitamos mencionar en Manifest pero para fragment no es obligatorio.
  9. Actividad se utiliza mucha memoria y el fragmento no se utiliza memoria.
  10. La actividad no es un peso ligero. El fragmento es el peso ligero.
siddhartha shankar
fuente
Buena explicación.
Abhishek kumar
¿Alguien puede dar más detalles sobre el n. ° 10? ¿Qué hace que el fragmento sea liviano en comparación con la actividad?
dazzieta
# 7 no tiene sentido: - \
t3chb0t
23

Según la documentación del desarrollador de Android, diferencia entre fragmento y actividad en su ciclo de vida.

Enlace de documento http://developer.android.com/guide/components/fragments.html#Lifecycle

La diferencia más significativa en el ciclo de vida entre una actividad y un fragmento es cómo se almacena uno en su respectiva pila de actividades. Una actividad se coloca en una pila de actividades que administra el sistema cuando se detiene, de forma predeterminada (para que el usuario pueda navegar de regreso a ella con el botón Atrás, como se explica en Tareas y Pila de actividades). Sin embargo, un fragmento se coloca en una pila de actividades administrada por la actividad del host solo cuando solicitas explícitamente que se guarde la instancia llamando a addToBackStack () durante una transacción que elimina el fragmento.

De lo contrario, administrar el ciclo de vida del fragmento es muy similar a administrar el ciclo de vida de la actividad. Por lo tanto, las mismas prácticas para administrar el ciclo de vida de la actividad también se aplican a los fragmentos. Sin embargo, lo que también debe comprender es cómo la vida de la actividad afecta la vida del fragmento.

Y para diseños de paneles múltiples que tiene que usar con los fragmentque no puede lograr activity.

Ajay S
fuente
20

La actividad es la interfaz de usuario de una aplicación a través de la cual el usuario puede interactuar y Fragmento es la parte de la actividad, es una actividad secundaria dentro de la actividad que tiene su propio ciclo de vida que corre paralelo al ciclo de vida de las actividades.

Activity LifeCycle                           Fragment LifeCycle
onCreate()                                     onAttach()
    |                                              |
onStart()______onRestart()                     onCreate()
    |             |                                |
onResume()        |                            onCreateView()
    |             |                                |
onPause()         |                            onActivityCreated()
    |             |                                |
onStop()__________|                             onStart()
    |                                              |
onDestroy()                                    onResume()
                                                   |
                                                onPause()
                                                   |
                                                onStop()
                                                   |
                                              onDestroyView()
                                                   |
                                               onDestroy()
                                                   |
                                               onDetach()
Shubhamhackz
fuente
5

Actividad
1. Las actividades son uno de los componentes fundamentales de las aplicaciones en la plataforma Android. Sirven como punto de entrada para la interacción de un usuario con una aplicación y también son fundamentales para la forma en que un usuario navega dentro de una aplicación o entre aplicaciones.
2. Los métodos de ciclo de vida están alojados por el sistema operativo.
3. Ciclo de vida de la actividad

Fragmentos
1. Un Fragmento representa un comportamiento o una parte de la interfaz de usuario en una Actividad. Puede combinar varios fragmentos en una sola actividad para crear una interfaz de usuario de varios paneles y reutilizar un fragmento en varias actividades. Puede pensar en un fragmento como una sección modular de una actividad, que tiene su propio ciclo de vida, recibe sus propios eventos de entrada y que puede agregar o eliminar mientras se ejecuta la actividad.
2. Los métodos de ciclo de vida están alojados por la actividad de alojamiento está alojada.
3. Ciclo de vida de un fragmento

CubeRootX
fuente