studio programacion móviles libros libro desarrollo desarrollar curso aprende aplicaciones android android-asynctask android-service android-download-manager

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