VIII.9. Servicios.

Un servicio es un componente de una aplicación que lleva a cabo tareas en segundo plano sin necesidad de mostrar ningún elemento visual con el que el usuario tenga que interactuar. Los servicios son procesos independientes de la ejecución de la aplicación que los crea, por lo tanto, cuando una aplicación inicia un servicio, éste ejecutará sus tareas en segundo plano aunque la aplicación se haya cerrado, minimizado o destruido. La ejecución de un servicio solo se podrá detener con las funciones para destruir desde sí mismo o desde su aplicación creadora, esto depende de las necesidades de cada caso en particular. Un servicio también se detendrá cuando el sistema operativo tenga que liberar recursos.

Para crear y programar un servicio dentro de una aplicación, se debe crear una clase que herede de la clase Service , y debe poseer los siguientes métodos sobrescritos (@Override):

  • public void onCreate(): Este método se ejecuta cuando se crea el servicio por primera vez.
  • public int onStartCommand(Intent intent, int flags, int startId): Este método se ejecuta cuando se inicia la ejecución del servicio.
  • public void onDestroy(): Este método se ejecuta cuando se manda a destruir el servicio.

Posteriormente, para que la aplicación pueda manejar los servicios, éstos se deben declarar en el archivo Manifest, con la siguiente estructura (un elemento por cada servicio):

<service android:name = ".ExampleService" />

Donde ExampleService es el nombre de la clase (.java) del servicio.

Finalmente, para iniciar o detener el servicio desde la clase principal, se deben usar las siguientes líneas:

Intent intent = new Intent(this, HelloService.class);
startService(intent); //Método para iniciar servicio 
stopService(intent); //Método para detener servicio

Donde HelloService es la clase del servicio.