Introducción a los servicios en Android

Puedes ver una explicaión de esta sección en formato poli[Media]

Los servicios en Android

 

Puedes ver una explicaión de esta sección en formato poli[Media]

Un servicio para ejecución en segundo plano

 

En muchos casos, será necesario añadir un nuevo componente a tu aplicación para ejecutar algún tipo de acción que se ejecute en segundo plano, es decir, que no requiera una interacción directa con el usuario; pero que queramos que permanezca activo aunque el usuario cambie de actividad. Este es el momento de crear un servicio.

En Android los servicios tienen una doble función:

La primera función permite indicar al sistema que el elemento que estamos creando ha de ejecutarse en segundo plano, normalmente durante un largo período de tiempo. Este tipo de servicios son iniciados mediante el método startService(), que indica al sistema que lo ejecute de forma indefinida hasta que alguien le indique lo contrario.

La segunda función permite que nuestra aplicación se comunique con otras aplicaciones, para lo cual ofreceremos ciertas funciones que podrán ser llamada desde otras aplicaciones. Este tipo de servicios son iniciados mediante el método bindService(), que permite establecer una conexión con el servicio e invocar alguno de los métodos que son ofrecidos.

 

Cada vez que un servicio es creado por alguna de las razones anteriores, el sistema instancia el servicio y llama al método onCreate(). Corresponde al servicio implementar el comportamiento adecuado, habitualmente creará un hilo de ejecución (thread) secundario donde se realizará el trabajo.

Un servicio en sí es algo muy simple, en este capítulo se verán ejemplos de servicios locales escritos en muy pocas líneas. No obstante, también pueden complicarse, como veremos al final del capítulo cuando tratemos de invocar servicios remotos por medio de una interfaz AIDL.

Un servicio, como el resto de componentes de una aplicación, se ejecuta en el hilo principal del proceso de la aplicación. Por lo tanto, si el servicio necesita un uso intensivo de CPU o puede quedar bloqueado en ciertas operaciones, como uso de redes, debes crear un hilo diferente para ejecutar estas acciones. También puedes utilizar la clase IntentService para lanzar un servicio en su propio hilo. 

 


{jcomments on}