tipos stopservice startforeground servicios servicio saber para intent esta ejemplo corriendo como android android-fragments headless-fragments

stopservice - ¿Cuál es la diferencia entre un fragmento sin cabeza y un servicio en Android?



stopservice android (3)

Fragmento sin cabeza: fragmento sin interfaz de usuario, básicamente utilizado para almacenar objetos de gran tamaño.

Servicio: es una tarea de ejecución prolongada iniciada por Android, podemos establecer la prioridad para el servicio, incluso si la aplicación finaliza, el servicio no se detendrá a menos que su trabajo se complete

Servicio

Un Servicio es un componente de la aplicación que representa el deseo de una aplicación de realizar una operación de ejecución más larga sin interactuar con el usuario o de proporcionar funcionalidad para que otras aplicaciones la utilicen.

Fragmento sin cabeza

Los fragmentos se pueden utilizar sin definir una interfaz de usuario. Se recomienda utilizar fragmentos sin cabeza para su procesamiento en segundo plano.

¿Cual es la diferencia aquí?


Service les da mayor prioridad que las Activity a nivel de proceso. Cuando la memoria es baja, el sistema Android dará prioridad a los Service encima de las Activity , haciendo que los Service la opción ideal para tareas de larga duración. Consulte el artículo titulado Procesos e hilos para obtener más información.

Además, cuando indiques lo siguiente en tu publicación original:

Los fragmentos se pueden utilizar sin definir una interfaz de usuario. Se recomienda utilizar fragmentos sin cabeza para su procesamiento en segundo plano.

¿De dónde estás citando esto? Estoy de acuerdo con la primera oración, pero la segunda es demasiado general. Para las tareas de ejecución corta (como realizar solicitudes HTTP, etc.), los fragmentos sin cabeza funcionan bien. Sin embargo, para realizar un procesamiento en segundo plano de larga ejecución (como descargar un archivo muy grande, etc.) es posible que un fragmento sin cabeza no sea lo que desea. Por ejemplo, si usó un fragmento sin cabeza para realizar una tarea de larga duración y el usuario hizo clic en el "botón Atrás", esto causará que tanto la Activity como su Fragment sin cabeza se destruyan.

Para resumir, un servicio es un componente de fondo que existe independientemente de una Activity , lo que significa que puede continuar ejecutándose en segundo plano incluso si la Activity que inició el servicio se destruye. Por otro lado, un fragmento sin cabeza siempre tendrá una Activity principal asociada. Si la Activity que aloja el fragmento es destruida por el sistema, entonces el fragmento también tendrá que eliminarse.


En general hablando

Los fragmentos sin cabeza están destinados a encapsular datos . Los fragmentos sin cabeza están destinados a encapsular datos que pueden compartirse entre varios componentes de la aplicación (ya que pueden existir independientemente de un componente UI).

Los servicios están destinados a encapsular el procesamiento . Son más independientes (y por lo tanto también más pesados, en cuanto a recursos) que los fragmentos; Se sientan en un nivel diferente de abstracción y pueden durar más tiempo, en un sistema.

Hay superposición entre los dos.