android - programacion - Tarea asincrónica versus servicio para descargar datos
manual de programacion android pdf (3)
Quiero saber cuál es mejor para descargar archivos, tareas asincrónicas o servicios?
Mi aplicación tiene ocho botones, uno de los cuales inicia una descarga direfferent (cuya descarga tiene ~ 10MB). Cuando el usuario hace clic en un botón o más para descargar datos, es mejor utilizar una tarea o servicio asíncrono.
¡Gracias!
AsyncTask - AsyncTask
manipula hilos y / o manipuladores, si puedes hacer eso mejor con Looper
y ¿para qué molestarse? AsyncTask está diseñado para ser una clase de ayuda en torno a Thread and Handler, e idealmente debería usarse para operaciones cortas (unos segundos como máximo) . ¿Cómo se puede decir en modo de producción si no va a tomar mucho tiempo? probablemente sea una mala red, una red lenta, una red atascada, un reinicio del teléfono, y todo esto probablemente hará que la descarga sea corrupta o inacabada. Soy un usuario de aplicaciones, y me enojo cuando gasto paquetes en nada ...
si me preguntas, usa
Servicio : el Service
está hecho para ejecutarse independientemente de qué aplicación / pantalla es visible y realizar si se comunica con la interfaz de usuario si solo está disponible si no continúa con la descarga y lo guarda, AsyncTask
no constituye un marco de AsyncTask
hilos genérico. siempre use hilos, es genial, a todos nos encanta.
En cualquier caso, debe utilizar AsyncTask
porque incluso el servicio se ejecuta en el hilo principal (GUI) donde no se debe hacer una red. Si ejecutar AsyncTask
en un servicio o una actividad depende de si desea que la descarga continúe en segundo plano.
todas las respuestas anteriores tienen buenos puntos. pero el problema del ciclo de vida es lo más importante que debes considerar. por ejemplo, digamos que usas asyncTask
. para que el usuario comience a descargar y de repente él / ella gira la pantalla y debido a que vinculó el asyncTask
vida asyncTask
a la activity
asyncTask
otra operación asyncTask
dará como resultado una descarga compulsiva de 10 MB. por lo tanto, teniendo en cuenta esto, debe usar service
y asyncTask
para mantener el problema del ciclo de vida y de la interconexión de la interfaz de usuario.
Actualización : Intent-service es una solución mejor porque recibe solicitudes en su propio hilo y se desconecta cuando no tiene nada que ver