studio scanner para libreria how example devices connectedthread android

scanner - Android: AsyncTask vs Service



listview bluetooth android example (6)

El servicio es un daemon, AsynkTask es un hilo de fondo

¿Por qué leo en la respuesta a la mayoría de las preguntas aquí mucho sobre AsyncTask y los cargadores pero nada sobre los Services ? ¿Los servicios no se conocen muy bien o están en desuso o tienen algunos atributos incorrectos o algo así? ¿Cuáles son las diferencias?

(Por cierto, sé que hay otros hilos al respecto, pero ninguno realmente establece claras diferencias que ayuden a un desarrollador a decidir fácilmente si está mejor usando uno u otro para un problema real).


En algunos casos, es posible realizar la misma tarea con un servicio AsyncTask o un Service sin embargo, por lo general, uno se adapta mejor a una tarea que el otro.

AsyncTask s están diseñados para tareas que consumen mucho tiempo y que no se pueden ejecutar con el subproceso de interfaz de usuario. Un ejemplo común es obtener / procesar datos cuando se presiona un botón.

Service están diseñados para ejecutarse continuamente en segundo plano. En el ejemplo anterior de obtención de datos cuando se presiona un botón, puede iniciar un servicio, dejar que recupere los datos y luego detenerlo, pero esto es ineficiente. Es mucho más rápido utilizar una AsyncTask que se ejecutará una vez, devolverá los datos y terminará.

Sin embargo, si necesita estar continuamente haciendo algo en segundo plano, un Service es su mejor opción. Ejemplos de esto incluyen reproducir música, verificar continuamente nuevos datos, etc.

Además, como ya dijo Sherif, los servicios no se ejecutan necesariamente fuera del hilo de la interfaz de usuario.

En su mayor parte, los Service son para cuando quiere ejecutar código incluso cuando la Activity su aplicación no está abierta. AsyncTask s están diseñados para hacer que la ejecución del código fuera del hilo de la interfaz de usuario sea increíblemente simple.


En algunos casos, puede lograr la misma funcionalidad usando ambos. A diferencia de la tarea Async, el servicio tiene su propio ciclo de vida y hereda el contexto (el servicio es más sólido que una tarea asíncrona). El servicio puede ejecutarse incluso si ha salido de la aplicación. Si desea hacer algo incluso después de cerrar la aplicación y también necesita la variable de contexto, irá a Servicio.

Ejemplo: si desea reproducir una música y no desea hacer una pausa si el usuario abandona la aplicación, definitivamente irá a Servicio.


Services son completamente diferentes: ¡los servicios no son hilos !

Su actividad se vincula a un servicio y el servicio contiene algunas funciones que, cuando se invoca, bloquea el hilo de llamada. Su servicio podría usarse para cambiar la temperatura de Celsius a Degrees. Cualquier actividad que se una puede obtener este servicio.

Sin embargo, AsyncTask es un subproceso que funciona un poco en segundo plano y al mismo tiempo tiene la capacidad de informar los resultados al hilo de llamada.

Solo un pensamiento: ¡un servicio puede tener un objeto AsyncTask !


Service es uno de los componentes del marco de Android, que no requiere la ejecución de la IU, lo que significa que incluso cuando el usuario no usa activamente la aplicación, puede realizar algunas operaciones con el servicio. Eso no significa que el servicio se ejecutará en un hilo separado, pero se ejecuta en el hilo principal y la operación se puede realizar en un hilo separado cuando sea necesario. Ejemplos de usos son la reproducción de música en segundo plano, la sincronización de datos con el servidor en el backgroud sin la interacción del usuario, etc.

AsyncTask por otro lado se usa para tareas de bloqueo de UI que se realizarán en un hilo separado. Es lo mismo que crear un nuevo hilo y hacer la tarea cuando todas las tareas de crear y mantener los hilos y enviar el resultado al hilo principal son atendidas por AsyncTask. El uso del ejemplo es obtener datos del servidor, operaciones CRUD en el resolutor de contenido, etc.


El servicio y las asynctasks casi hacen lo mismo, el servicio casi .using o una asynctask depende de cuál es su requisito.

como ejemplo, si desea cargar datos en una vista de lista desde un servidor después de presionar un botón o cambiar de pantalla, es mejor que vaya con asynctask.it se ejecuta en paralelo con el hilo principal de la interfaz de usuario (se ejecuta en segundo plano) .para ejecutar la actividad asynctack o su aplicación debería en la interfaz de usuario principal.después de salir de la aplicación, no hay ninguna tarea asíncrona.

Pero los servicios no son así, una vez que comienza un servicio, puede ejecutarse después de salir de la aplicación, a menos que se detenga el servicio. Como ya he dicho, depende de sus necesidades. Si desea seguir revisando la recepción de datos o verificar el estado de la red. continuamente es mejor que vayas con el servicio.

feliz codificacion