Por favor alguien puede mostrarme un ejemplo de algo que se puede hacer con un IntentService que no se puede hacer con un Service (y viceversa)?

También creo que un IntentService se ejecuta en un subproceso diferente y un Service no. Así que, tan lejos como puedo ver, a partir de un servicio dentro de su propio hilo es como empezar una IntentService. No es?

Agradecería si alguien me puede ayudar con mis preguntas.

  • IntentService is used for short tasks (etc) and a service is for long ones donde has leído eso ?
  • también, le sugiero que lea el código fuente de IntentService. Se deja bastante claro lo que es y lo que hace.
  • He editado mi pregunta después de que vi el comentario.
  • Código de IntentService: android.googlesource.com/platform/frameworks/base/+/refs/heads/…
  • Enlace en el comentario anterior (por greg7gkb) es una gran lectura.
InformationsquelleAutor roiberg | 2013-03-20

11 Comentarios

  1. 1319

    Tejas Lagvankar escribió un buen post acerca de este tema.
    A continuación están algunas de las principales diferencias entre el Servicio y el IntentService.

    Cuándo utilizar?

    • La Servicio puede ser utilizado en tareas sin la interfaz de usuario, pero no debería ser demasiado largo. Si usted necesita para realizar las tareas de largo, usted debe utilizar dentro de los hilos de Servicio.

    • La IntentService puede ser utilizado en las tareas de largo, generalmente con ninguna comunicación al Hilo Principal. Si la comunicación es necesario, puede utilizar Hilo Principal de controlador o de difusión de las intenciones. Otro caso de uso es cuando las devoluciones de llamada son necesarios (Intención activa de las tareas).

    Cómo trigger?

    • La Servicio se activa llamando al método startService().

    • La IntentService es activado mediante una Intención, se genera un nuevo subproceso de trabajo y el método de onHandleIntent() se llama en este hilo.

    Activa De

    • La Servicio y IntentService puede ser provocado por cualquier subproceso, actividad u otro componente de la aplicación.

    Se Ejecuta En

    • La Servicio se ejecuta en segundo plano, pero se ejecuta en el Hilo Principal de la aplicación.

    • La IntentService se ejecuta en un subproceso de trabajo.

    Limitaciones /Inconvenientes

    • La Servicio puede bloquear el Hilo Principal de la aplicación.

    • La IntentService no se puede ejecutar tareas en paralelo. Por lo tanto, todos los intentos consecutivos ir a la cola de mensajes para el subproceso de trabajo y se ejecutan secuencialmente.

    Cuando parar?

    • El caso de implementar una Servicio, es su responsabilidad para detener el servicio, cuando su trabajo está hecho, llamando stopSelf() o stopService(). (Si usted sólo desea proporcionar el enlace, no es necesario aplicar este método).

    • La IntentService detiene el servicio después de que todas las solicitudes de inicio se han manejado, así que usted nunca tiene que llamar stopSelf().

    • corto y dulce, pero es mejor si puedes editar tu respuesta, incluidos los puntos por CommonsWare, como mucha gente sólo lee aceptado o más upvoted respuestas
    • Hrw: acabo de editar la respuesta con un nuevo punto incluido por CommonsWare. Gracias por el consejo!
    • una forma sencilla de explicar el concepto de estos dos componentes.
    • «El servicio se ejecuta de fondo pero se ejecuta en el hilo Principal de la aplicación» – que me Ayude a entender esto.
    • Un Servicio es un componente de la aplicación que puede realizar operaciones de larga duración en el fondo y no proporciona una interfaz de usuario. Un servicio se ejecuta en el hilo principal de su proceso de alojamiento. El Servicio no crear su propio hilo y no se ejecuta en un proceso independiente (a menos que se especifique lo contrario). Esto significa que, si su servicio se va a hacer cualquier trabajo intensivo de CPU o el bloqueo de las operaciones (tales como la reproducción de MP3 o de red), debe crear un nuevo hilo en el servicio para hacer ese trabajo.
    • «El IntentService debe ser activado desde el Hilo Principal.» Estás seguro? Dentro de mi MainActivity onCreate(), cuando llamo a un IntentService de un nuevo Hilo (código de abajo), todavía funciona para mí. new Thread(new Runnable() { @Override public void run() { Intent intent = new Intent(context, HelloIntentService.class); startService(intent); } }).start();
    • Tiene usted razón! El Servicios y IntentServices se puede iniciar desde cualquier subproceso, actividad u otro componente de la aplicación. Acabo de editar el texto de la respuesta para solucionar este problema. Gracias por su editar sugerencia! 🙂
    • que el servicio que debo utilizar para actualizar mi aplicación local de la tabla de manera continua ? incluso mi aplicación se cierra.
    • excelente explicación corta
    • No hay problema, ir a por ello!
    • «El Servicio se ejecuta en segundo plano, pero se ejecuta en el Hilo Principal de la aplicación.» Esto es incorrecto. Un Service es un objeto. No se ejecuta en cualquier Hilo. El métodos de un Service se puede ejecutar en cualquier Hilo, El métodos del ciclo de vida (onCreate(), onStartCommand(), onDestroy() son llamados por el Android framework en el principal (interfaz de usuario) de Hilo. Cuando la implementación de un Service es común para iniciar su propio Threads como trabajador o subprocesos en segundo plano y realizar operaciones de larga duración en los hilos. IntentService es sólo un extenstion de Service que hace esto para usted.
    • espero poder +1 de nuevo
    • servicio: pero no debe ser demasiado largo, se puede definir «demasiado tiempo» en este contexto? es 1min, 2min o 3min…… ? gracias
    • Así que en cuanto a esta respuesta de un Servicio es para tareas cortas y IntentService es para una tarea…. Pero si en la oficial doc para Servicio dice Un Servicio es un componente de la aplicación que puede realizar operaciones de larga duración en el fondo. Para IntentService dice se puede tomar el tiempo necesario (y no impide la aplicación del bucle principal), pero sólo una solicitud será procesada en un momento. . Por lo tanto para las tareas de largo ? no me queda claro…
    • "it is your responsibility to stop the service when its work is done, by calling stopSelf() or stopService()" Bien no es del todo cierto la ciencia ahora de las aplicaciones que la focalización de la API de 26 y más arriba. Servicio de fondo es asesinada por el sistema operativo cuando la aplicación es idle. developer.android.com/about/versions/oreo/background.html
    • gran encuentro este ans duración de 1 hora
    • Una pregunta @JoséJuanSánchez … ¿IntentService acabado como se quita la aplicación de fondo o de primer plano?Como sé que los Servicios se ejecuta incluso aplicación está presente o no en la de fondo y primer plano

  2. 160

    Si alguien me puede mostrar un ejemplo de algo que puede ser hecho con un IntentService y no se puede hacer con un Service y la otra manera alrededor.

    Por definición, es imposible. IntentService es una subclase de Service, escrito en Java. Por lo tanto, nada IntentService hace, un Service podía hacer, incluyendo los correspondientes bits de código que IntentService usos.

    A partir de un servicio con su propio hilo es como empezar un IntentService. No es?

    Las tres características principales de un IntentService son:

    • el subproceso en segundo plano

    • automático de cola de Intents entregados a onStartCommand(), así que si uno Intent está siendo procesado por onHandleIntent() en el subproceso en segundo plano, otros comandos cola esperando su turno

    • la parada automática de la IntentService, a través de una llamada a stopSelf(), una vez que la cola está vacía

    Cualquier y de todos los que podrían ser implementadas por un Service sin ampliar IntentService.

    • Un poco tarde, pero me estoy encontrando que Service llamado con startService, sólo se pueden ejecutar durante unos 10 segundos antes de lanzar un ANR-un IntentService comenzó con la radiodifusión una intención parece que no tienen esta limitación
    • Eso es porque usted estaba atando el hilo principal de la aplicación. Todos los métodos del ciclo de vida en todos los componentes, incluyendo onStartCommand() de un Service, son llamados en el hilo principal de la aplicación. Usted puede atar este hilo por más de unos pocos milisegundos sin la congelación de su interfaz de usuario, y si usted toma muchos segundos, obtendrá el servicio equivalente de un ANR.
    • sí me comentó demasiado pronto. Estaba haciendo el trabajo onStartCommand en lugar de onHandleIntent— parece onStartCommand se ejecuta en el subproceso de interfaz de usuario, sin embargo, un hilo separado es generado por onHandleIntent ejecución.
    • Es stopSelf() algo que el programador tiene que llamar, o no la IntentService llamada que por sí mismo?
    • las llamadas que sí, después de onHandleIntent() devuelve, si no hay más trabajo por hacer.
    • No entiendo que es, en la partida que has mencionado «IntentService es una subclase de Servicio» y, a continuación, usted escribió «podrían ser implementadas por un Servicio sin la ampliación de IntentService» que me confunde de «que es super y que es la sub clase» amablemente ayuda.
    • El concepto de las superclases y las subclases es un general de Java concepto, no es exclusivo de Android. Service es una clase de Java. IntentService es una subclase de Service. Sin embargo, puede crear otras subclases de Service así.
    • Una pregunta @CommonsWare … ¿IntentService acabado como se quita la aplicación de fondo o de primer plano?Como sé que los Servicios se ejecuta incluso aplicación está presente o no en la de fondo y primer plano
    • No estoy seguro exactamente lo que quieres decir por «eliminado». Si el usuario presiona el HOGAR o en la ESPALDA, y la interfaz de usuario de la aplicación ya no está en el primer plano, el IntentService no se ve afectada. Si Android se termina el proceso, el IntentService desaparece cuando el proceso. Y es posible que usted tiene algo más en mente para «eliminar».
    • Señor… yo solo quiero pedir que cuando la Aplicación no está en el fondo y primer plano también..Que Nuestro IntentService también se termina o no…Como sé que ejecuta el Servicio, incluso la aplicación se está ejecutando o no hasta que y a menos que el sistema o hemos retirado.. Gracias señor por urs respuesta
    • Lo siento, pero yo todavía no entiendo lo que quieres decir. Un IntentService es una Service. Todo normal Service reglas que se aplican. además, una IntentService se detiene automáticamente cuando el trabajo en onHandleIntent() completa. Tenga en cuenta que IntentService no funciona especialmente bien en Android 8.0+ — por favor, considere el uso de JobIntentService o (en 2019 y más allá) WorkManager para este tipo de trabajos en segundo plano.
    • Sir IntentService depende de la Aplicación se está ejecutando o no?
    • No sé lo que usted considera «la Aplicación se está ejecutando o no» significaba, así que no puedo responder a eso, lo siento.
    • Lo siento por molestarte…Lo que es un infierno mi inglés…no me consiguiendo..Gracias, señor, de todos modos @CommonsWare
    • Una última prestar atención.. Supongamos que estoy descargando el archivo desde el servidor que se descarga después de 1 hora y estoy usando el IntentService para ella…Durante la descarga de archivos , he CERRADO la aplicación (ni siquiera se ejecutan en segundo plano)….Que mi pregunta es que Hace mi IntentService también los acabados O no?
    • El problema no es el inglés, pero la programación. Por ejemplo, «me han CERRADO la app» no tiene una definición precisa, por lo que no puedo decirle a usted lo que ocurre cuando se produce. Yo también no sé cómo «me han CERRADO la app» se refiere a «descargar después de 1 hora». Usted podría considerar la posibilidad de pedir por separado un Desbordamiento de Pila pregunta, donde se puede dar un mínimo reproducible ejemplo de «descarga después de 1 hora». Allí, se puede explicar de detalle lo que «me han CERRADO la app» significa (por ejemplo, que es lo que hace el usuario para cerrar la aplicación?).
    • ok sir @CommonsWare muchas Gracias por urs sugerencia.De nuevo gracias señor 🙂

  3. 38

    Servicio

    • Invocar por startService()
    • Activa a partir de cualquier Thread
    • Se ejecuta en Main Thread
    • Puede bloquear principal de la interfaz de usuario (UI) de hilo. Siempre use hilo dentro del servicio de larga tarea
    • Una vez que la tarea se ha hecho, es nuestra responsabilidad para detener el servicio llamando stopSelf() o stopService()

    IntentService

    • Realiza larga tarea que normalmente no hay comunicación con el hilo principal, si la comunicación que se necesita entonces es hecho por Handler o BroadcastReceiver
    • Invocar a través de Intent
    • Activa de Main Thread
    • Se ejecuta en el hilo separado
    • No se puede ejecutar la tarea en paralelo y de varios intentos, se ponen en Cola en el mismo subproceso de trabajo.
  4. 15

    De añadir puntos a la aceptación de respuesta:

    Ver el uso de IntentService dentro de la API de Android.
    por ejemplo:

    public class SimpleWakefulService extends IntentService {
        public SimpleWakefulService() {
            super("SimpleWakefulService");
        }
    
        @Override
        protected void onHandleIntent(Intent intent) {  ...}

    Para crear un IntentService componente para su aplicación, definir una clase que extiende IntentService, y dentro de ella, definir un método que reemplaza onHandleIntent().

    También, ver el código fuente de la IntentService, es constructor y el ciclo de vida de los métodos como onStartCommand…

      @Override
        public int More ...onStartCommand(Intent intent, int flags, int startId) {
           onStart(intent, startId);
            return mRedelivery ? START_REDELIVER_INTENT : START_NOT_STICKY;
        }

    Servicio de un AsyncTask es uno de los mejores enfoques para muchos
    casos de uso donde la carga no es enorme. o simplemente crear una clase
    ampliación de IntentSerivce. A partir de la versión Android 4.0 toda la red
    las operaciones deben estar en proceso de fondo de lo contrario, la aplicación de compilación y generación de falla.
    subproceso independiente de la interfaz de usuario. La clase AsyncTask proporciona una de las formas más sencillas para disparar una nueva tarea desde el subproceso de interfaz de usuario. Para más discusión sobre este tema, consulte el blog

    de Los desarrolladores de Android guía:

    IntentService es una clase base para los Servicios que se encargan de peticiones asíncronas (expresado como Intentos) en la demanda. Los clientes envían peticiones a través de startService(Intención) llamadas; se inicia el servicio según sea necesario, se ocupa de cada Intención, a su vez, el uso de un subproceso de trabajo, y se detiene a sí mismo cuando se ejecuta fuera de la obra.

    Patrón de diseño utilizado en el IntentService

    :
    Este «trabajo de la cola de procesador» patrón se utiliza comúnmente para la descarga de tareas de una aplicación principal del hilo. La clase IntentService existe para simplificar este patrón y cuidar de la mecánica. Para utilizar, extender el IntentService y aplicar onHandleIntent(Intención). IntentService recibirá las Intenciones, el lanzamiento de un subproceso de trabajo, y detener el servicio, según corresponda.

    Todas las solicitudes son procesadas en un único subproceso de trabajo — que puede tomar el tiempo necesario (y no impide la aplicación del bucle principal), pero sólo una solicitud será procesada en un momento.

    La clase IntentService proporciona una estructura sencilla para la ejecución de una operación en un único subproceso en segundo plano. Esto le permite manejar las operaciones de larga duración sin afectar la interfaz de usuario de la capacidad de respuesta. También, un IntentService no se ve afectado por la mayoría de la interfaz de usuario de eventos del ciclo de vida, por lo que sigue en circunstancias que cerraría con un AsyncTask.

    Un IntentService tiene un par de limitaciones:

    No puede interactuar directamente con la interfaz de usuario. Para poner sus resultados en la interfaz de usuario, tienes que enviar a una Actividad.
    Las solicitudes de trabajo se ejecutan de forma secuencial. Si una operación se ejecuta en un IntentService, y enviar otra solicitud, la solicitud de espera hasta la primera operación ha terminado.
    Una operación que se ejecuta en un IntentService no puede ser interrumpido.
    Sin embargo, en la mayoría de los casos

    IntentService es la manera preferida de simples operaciones de fondo

    **

    Volea Biblioteca

    No es la biblioteca de la llamada volley-biblioteca para el desarrollo de android las aplicaciones de red
    El código fuente está disponible para el público en GitHub.

    El android documentación oficial para Las mejores prácticas para trabajos en segundo plano:
    ayuda a comprender mejor sobre la intención de servicio, el hilo, el manejador de servicio. y también La Realización De Las Operaciones De La Red

    • Podría ser mejor , si pudiera darle a corto ,hasta el punto de responder.
  5. 14

    No reinventar la rueda

    IntentService se extiende Servicio clase, lo que significa claramente que IntentService se hizo intencionalmente para mismo propósito.

    Entonces, ¿cuál es el propósito ?

    `IntentService propósito es hacer nuestro trabajo más fácil para ejecutar tareas en segundo plano sin ni siquiera preocuparse por

    • Creación del subproceso de trabajo

    • Cola el procesamiento de varios de solicitud de uno por uno (Threading)

    • La destrucción de la Service

    Así NO, Service puede hacer cualquier tarea que un IntentService iba a hacer. Si sus requisitos de caer bajo los criterios anteriormente mencionados, entonces usted no tiene que escribir esas lógicas en Service clase.
    Así que no reinventar la rueda, porque IntentService es el que inventó la rueda.

    El «Principal» diferencia

    El Servicio se ejecuta en el subproceso de interfaz de usuario, mientras que un IntentService se ejecuta en un
    subproceso independiente

    ¿Cuándo se usa un IntentService?

    Cuando se desea realizar múltiples tareas en segundo plano uno por uno, que existe más allá del alcance de una Actividad, entonces el IntentService es perfecto.

    Cómo IntentService está hecho de Service

    Un normal servicio se ejecuta en el Subproceso de interfaz de usuario(Cualquier Android tipo de Componente se ejecuta en el subproceso de interfaz de usuario por defecto, por ejemplo Activity, BroadcastReceiver, ContentProvider y Service). Si tienes que hacer algo de trabajo que puede tomar un tiempo para completar, a continuación, usted tiene que crear un hilo. En el caso de solicitudes múltiples, usted tendrá que lidiar con synchronization.
    IntentService es dado algunos implementación por defecto que hace esas tareas para usted.

    De acuerdo a página de desarrolladores

    1. IntentService crea un Subproceso de trabajo

    2. IntentService crea una Cola de Trabajo que envía la solicitud a onHandleIntent() método

    3. Cuando no hay trabajo, a continuación, IntentService llamadas stopSelf() método
    4. Proporciona una implementación por defecto para onBind() método que es nulo
    5. Implementación predeterminada para onStartCommand() que envía Intent solicitud para WorkQueue y, finalmente, a onHandleIntent()
  6. 12

    Estoy seguro de que usted puede encontrar una extensa lista de diferencias simplemente buscando en google algo como «Android IntentService Servicio de vs’

    Una de las más importantes diferencias, por ejemplo, es que IntentService termina en sí misma una vez que se hace.

    Algunos ejemplos (rápidamente hacia arriba) podría ser;

    IntentService: Si desea descargar un montón de imágenes en el inicio de la apertura de su aplicación. Es un proceso de tiempo y se puede limpiar a sí mismo una vez que todo está descargado.

    Servicio: Un servicio que constantemente será utilizado para la comunicación entre la aplicación y back-end de la web, llamadas a la API. Incluso si es terminado con su tarea actual, usted todavía quiere que sea todo un par de minutos más tarde, por más de comunicación.

    • Sí, pero ¿qué significa esto?! termina uno mismo? Si el servicio no está haciendo nada de su «hacer». ¿no es así? Quiero decir, Si un código en un servicio que se está haciendo algo corto y sencillo, que cuando el código es hacer que el servicio también se hace.. o qué?
    • No he encontrado un ejemplo que se puede hacer con uno y no con el otro. sólo algunas de las explicaciones que no me ayudan.
    • Pruebe este sitio, tiene un montón de buena explicación básica de Android conceptos con decente ejemplos vogella.com/articles/AndroidServices/article.html
    • Su otro ejemplo de «cómo utilizar». no cuando se utiliza específicamente el servicio y cuando intentservice. Por favor, dame un ejemplo teórico y no enlaces a «cómo usar» o cualquier otro likns para que metter. No estoy pidiendo que «trabajar» para mí mientras estoy haciendo nada, es sólo que he visto todos los liks y todavía no estoy seguro.
    • Respuesta actualizada con algunos breves ejemplos también.
    • eso es bastante importante diferencia. por ejemplo, si utiliza el servicio para mantener la conexión persistente con el servidor, usted puede utilizar intentservice para que a medida que se termina justo después de que termine todas sus tareas
    • Sí, ahora lo entiendo!! Gracias!
    • cuando me de google que, me trae aquí. ahora estoy en un bucle infinito.

  7. 12

    IntentService

    IntentService se ejecuta en su propio hilo.
    Se detendrá por sí mismo cuando es hecho. Más como el fuego y olvidar.
    Las llamadas posteriores se pondrán en cola. Bueno para la cola de llamadas.
    Usted también puede girar varios subprocesos dentro de IntentServicesi usted necesita – Usted puede lograr esto mediante ThreadPoolExecutor.
    Digo esto porque mucha gente me ha preguntado «¿por qué utilizar IntentService ya que no admite la ejecución en paralelo».
    IntentService es sólo un hilo. Usted puede hacer lo que sea necesario dentro de él – Incluso la hilatura de hilos múltiples. La única salvedad es que IntentService finaliza tan pronto como usted hace girar los hilos múltiples. No espere a que los hilos para volver. Usted necesita tomar el cuidado de este. Así que recomiendo el uso de ThreadPoolExecutor en esos escenarios.

    • Buena para Sincronizar, cargar, etc …

    Servicio

    Por Defecto Service se ejecuta en el hilo principal. Usted necesita para hacer girar un subproceso de trabajo para hacer su trabajo.
    Usted necesita para dejar de service explícitamente.
    Yo lo he utilizado para una situación en la que usted necesita para ejecutar cosas en el fondo, incluso cuando se alejan de su aplicación y volver más de una cabeza,service.

    • De nuevo puede ejecutar múltiples hilos, si es necesario.
    • Puede ser utilizado para aplicaciones como reproductores de música.

    Usted siempre puede comunicarse con su actividad utilizando BroadcastReceivers si es necesario.

  8. 8

    Un IntentService es una extensión de un Servicio que se hace para facilitar la ejecución de una tarea que debe ser ejecutado en segundo plano y en un seperated hilo.

    IntentService se inicia, crea un hilo y ejecuta su tarea en el hilo. una vez hecho esto, se limpia todo. Sólo una instancia de un IntentService se pueden ejecutar al mismo tiempo, varias llamadas en la cola de espera.

    Es muy simple de usar y muy conveniente para muchos usos, por ejemplo la descarga de material. Pero tiene limitaciones que pueden hacer que usted desea utilizar en su lugar el más básico (que no simple) de Servicio.

    Por ejemplo, un servicio conectado a un servidor xmpp y obligado por las actividades no pueden ser simplemente realiza mediante un IntentService. Usted va a terminar ignorando o reemplazar IntentService materias.

    • lo que parece es que la mayoría de la gente que quiere correr un largo servicio en ejecución en el fondo terminan tratando de encontrar acerca de IntentService porque los docs de hacer parecer que es por hacer eso, Pero en su mayoría podría ser tan bien el uso de new Thread(new Runnable()).start(). en otras palabras, cuando se habla de «genera un nuevo hilo» que es todo lo que hace, no se mueve a un independiente proceso, que es en realidad lo que la mayoría de la gente mira para cuando se quieren separar a algunos se ejecuta el código de la Actividad!(porque solo desove hilos es un liner de todos modos)
    • el intentService también se ocupa del ciclo de vida de la rosca, y utiliza un looper, que ayuda al programador. También se asegura de que sólo una instancia se está ejecutando, y las colas de otras llamadas.
  9. 5

    Si alguien me puede mostrar un ejemplo de algo que puede ser hecho con un IntentService y no se puede hacer con un service y la otra manera alrededor.

    IntentService no puede ser usado por Mucho Tiempo Escuchando, Como para XMPP Oyentes, de un solo operador en tiempo, hacer el trabajo y adiós con la mano.

    También sólo tiene una threadworker, pero con un truco, se puede utilizar como ilimitado.

  10. 4

    La Principal Diferencia entre un Service y un IntentService se describe como sigue:

    Servicio :

    1.Un Service por defecto, se ejecuta en el subproceso principal de la aplicación.(aquí no tiene ningún valor predeterminado subproceso de trabajo está disponible).Por lo que el usuario necesita para crear un subproceso independiente y hacer el trabajo requerido en ese hilo.

    2.Permite que Varias solicitudes a la vez.(Multi Threading)

    IntentService :

    1.Ahora, llegando a IntentService, aquí un defecto subproceso de trabajo se encuentra disponible para realizar cualquier operación. Nota que – es necesario implementar onHandleIntent() método ,que recibe el propósito para cada solicitud de inicio, donde usted puede hacer el trabajo de fondo.

    2.Pero se permite sólo una petición a la vez.

  11. 1

    Android IntentService Servicio de vs

    1.Servicio de

    • Un Servicio que se invoca mediante startService().
    • Un Servicio puede ser invocado desde cualquier hilo.
    • Un Servicio se ejecuta operaciones de fondo en el Hilo Principal de la
      Aplicación por defecto. Por lo tanto se puede bloquear la Aplicación de la interfaz de usuario.
    • Un Servicio invoca varias veces sería crear varias instancias.
    • Un servicio necesita ser dejado de usar stopSelf() o stopService().
    • Android de servicio puede ejecutar operaciones en paralelo.

    2. IntentService

    • Un IntentService se invoca mediante la Intención.
    • Un IntentService puede en se invoca desde el hilo Principal solamente.
    • Un IntentService crea un subproceso de trabajo para ejecutar fondo
      operaciones.
    • Un IntentService invoca varias veces no crear múltiples
      las instancias.
    • Un IntentService se detiene automáticamente después de que la cola se haya completado. No
      necesario para desencadenar stopService() o stopSelf().
    • En un IntentService, múltiples intención llamadas automáticamente se ponen en Cola
      y que iba a ser ejecutado de forma secuencial.
    • Un IntentService no puede ejecutar la operación en paralelo como un Servicio.

    Se refieren Aquí

Dejar respuesta

Please enter your comment!
Please enter your name here