Servicio vs IntentService en Android

Todos nos encontramos con una variedad de aplicaciones móviles que funcionan en segundo plano a diario. Además, en muchas aplicaciones, ciertas actividades se llevan a cabo sin el uso de ninguna interfaz de usuario, es decir, el trabajo se lleva a cabo en segundo plano. Por ejemplo, la aplicación de Música en nuestro dispositivo móvil o cualquier otra aplicación de Música se ejecuta en segundo plano, y puede usar cualquier otro programa correctamente mientras usa la aplicación de Música. Como resultado, se utiliza el Servicio o IntentService para lograr esta funcionalidad.

En este artículo, examinaremos las distinciones entre el Servicio y el IntentService. Pero, antes de continuar, repasemos Service e IntentService nuevamente.

Tabla de diferencias

Servicio

Servicio de intención

Considere el Servicio como un componente de Android que se usa para ejecutar varias actividades de ejecución prolongada en segundo plano, como en la aplicación Música, donde ejecutamos la aplicación en segundo plano mientras usamos otras aplicaciones móviles al mismo tiempo. El mejor aspecto es que no se requiere una interfaz de usuario para que los procesos se ejecuten en segundo plano. La clase base de IntentService es el Servicio. Esencialmente, sigue la estructura del «proceso de la cola de trabajo», con el IntentService manejando las requests a pedido del cliente (representadas como Intents).
También puede realizar alguna Comunicación entre procesos (IPC) mediante el uso de Servicio. Como resultado, puede realizar varias operaciones al mismo tiempo con la ayuda del Servicio porque cualquier componente de la aplicación puede iniciar un Servicio y ejecutarlo en segundo plano. Cuando un cliente envía una solicitud, se inicia el Servicio y, después de manejar todos y cada uno de los Intent, el Servicio finaliza.
En este caso, el usuario nunca sabrá lo que está pasando en el fondo del programa. Los clientes pueden usar Context.startService para realizar una solicitud para iniciar un Servicio (Intento). En este caso, se establece un subproceso de trabajo y el subproceso de trabajo maneja todas las requests, pero solo se procesa una solicitud a la vez.
Cuando uno o más componentes de la aplicación vinculan el Servicio mediante la función bindService(), se denomina servicio vinculado. Si las aplicaciones desvinculan el Servicio, se destruirá. El Servicio se puede activar desde cualquier subproceso, pero el IntentService solo se puede activar desde el subproceso principal, lo que significa que el Intent se recibe primero en el subproceso Principal y luego se ejecuta el subproceso del Trabajador.
Como resultado, puede realizar muchas tareas al mismo tiempo con la ayuda del Servicio, ya que cualquier componente de la aplicación puede iniciar un Servicio y ejecutarlo en segundo plano. Tendrá dificultades para interactuar con la interfaz de usuario de la aplicación si usa IntentService. Si desea mostrar ciertos resultados de IntentService en su interfaz de usuario, debe usar una Actividad.
Para iniciar un Servicio, use la función onStartService(), pero para iniciar un IntentService, use Intent, es decir, inicie el IntentService llamando a Context.startService (Intent). Debido a que el servicio opera en el subproceso principal, existe el riesgo de que su subproceso principal se detenga si lo utiliza. Sin embargo, en el caso de IntentService, el hilo principal no está involucrado. Los trabajos se completan en forma de cola, es decir, por orden de llegada.

Conclusión

En este artículo, aprendimos sobre las distinciones entre el Servicio de Android y el IntentService. Hablamos sobre algunas de las muchas formas de iniciar y finalizar el Servicio e IntentService. Si solo necesita realizar algunas actividades en segundo plano, puede utilizar Servicio; de lo contrario, puede usar IntentService.

Publicación traducida automáticamente

Artículo escrito por therebootedcoder y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *