Servicios

Un servicio es un componente de aplicación que puede realizar operaciones de larga duración en segundo plano sin proporciona una interfaz de usuario. Otro componente de una aplicación puede iniciar un servicio y este seguirá funcionando en segundo plano, incluso si el usuario cambia a otra aplicación. Además, un componente puede unirse a un servicio para interactuar con él e incluso realizar la comunicación entre procesos (IPC). Por ejemplo, un servicio puede manejar las transacciones de red, reproducir música, realizar operaciones con archivos de Entrada/Salida o interactuar con un proveedor de contenido, todo desde en segundo plano.

Un servicio esencialmente puede adoptar dos formas:

Iniciados (Started)
Un servicio es "iniciado" cuando un componente de una aplicación (por ejemplo, una actividad) lo inicia llamando la función StartService(). Una vez iniciado, un servicio puede ejecutarse en segundo plano de forma indefinida, incluso si el componente que empezó se destruye. Por lo general, un servicio iniciado realiza una sola operación y no devuelve un resultado a la persona que llama. Por ejemplo, puede descargar o cargar un archivo a través de la red. Cuando la operación se lleva a cabo, el servicio debe detenerce por si mismo.

Unidos (Bound)
Un servicio es "unido" cuando un componente de una aplicación se une a el llamando la función bindService(). Un servicio unido ofrece una interfaz de cliente-servidor que permite a los componentes interactuar con el servicio, enviar solicitudes, obtener resultados, e incluso hacerlo a través de comunicación entre procesos (IPC). Un servicio unido sólo se ejecuta mientras que otro componente de la aplicación está vinculado a el múltiples componentes se pueden enlazar con un servicio a la vez, pero cuando todos ellos se desenlacen, el servicio se debe destruir a si mismo.

Aunque aquí estamos analizando estos dos tipos de servicios por separado, un servicio puede funcionar en ambos sentidos, se puede iniciar (para ejecutar de forma indefinida) y también permite la unión. Es simplemente una cuestión de implementar un par de métodos de devolución de llamada (callbacks): onStartCommand () para permitirle a un componentes iniciarlo y onBind () para permitir la unión.

Independientemente de si su aplicación se inicia, con destino, o ambos, cualquier componente de la aplicación puede utilizar el servicio (incluso de una solicitud por separado), de la misma manera que cualquier componente puede utilizar una actividad-comenzando con una intención (Intent). Sin embargo, puede declarar el servicio como privado, en el archivo de manifiesto, y bloquear el acceso de otras aplicaciones.

Leave a reply

You must be logged in to post a comment.