Cuál es la diferencia entre los servicios y los servicios de intención en android?

Servicio es una clase base de la aplicación de servicio. La clase Service se ejecuta en el cordón principal de la aplicación, lo que puede reducir el rendimiento de la aplicación. Por lo tanto Intent Service que es una subclase explícita de Service nace para facilitar las cosas. El Intent Service se utiliza para realizar una determinada tarea en segundo plano. Una vez realizada, la instancia del servicio de intención se termina automáticamente.

Servicio VS Servicio de Intención en Android

En la documentación oficial de Android el Servicio y el Servicio de Intención se describen de la siguiente manera:

Servicio

Esta es la clase base para todos los servicios. Cuando agregues esta clase, es crucial que crees un nuevo hilo en el que hacer todo el trabajo del servicio, ya que el utiliza tu hilo principal de utilización, por defecto, lo que podría ralentizar el rendimiento de cualquier actividad que tu aplicación esté ejecutando.

Servicio de Intento

Esta es una posición de Servicio que utiliza un hilo campesino para manejar todas las peticiones de inicio, una a la vez. Esta es la mejor opción si no requiere que su servicio maneje múltiples peticiones simultáneamente. Todo lo que necesita hacer es utensilio en Handle Intent que recibe la intención para cada solicitud de inicio para que pueda hacer la práctica.

A continuación se presentan algunas diferencias clave entre el Servicio y el Servicio de Intento en Android.

¿Cuándo utilizar? Si la urgencia de completar tareas largas, debe utilizar hilos con el Servicio.

El Servicio de Intención se utiliza en tareas largas con frecuencia sin contacto con el Hilo Principal. If communication is required, can use Main Thread handler or broadcast intents. Another case of use is when callbacks are needed (Intent triggered tasks).

How to trigger?

The Service is triggered calling to method start Service.

The Intent Service is triggered using an Intent, it spawns a new worker thread and the method on Handle Intent() is called on this thread.

Triggered From

The utility and Intent Service may be generate from any thread, activity or other utilization fundamental.

Runs On

The utility runs in practice but it runs on the main thread of the utilization.

The Intent Service runs on a separate worker thread.

Limitations / Drawbacks

Slides

Slides available on Speaker Deck.

References

  1. Service. Android API.
  2. IntentService. Android API.
  3. Services. API Guide.
  4. StackOverflow.
  5. Android Services and Background Tasks.