Algún tipo de cola para asynctask
Hola tengo ListView con lista de archivos. Hago clic en el elemento y comienzo a descargar este archivo en asynctask. Entonces hago clic en otro y se debe poner en la cola, esperar a que el archivo y empezar a descargar ot después de que termine. Puedo hacer una clase que contenga todos los enlaces pulsados, y pasarlo a asynctask descargar parte? Y que de alguna manera los procesan. Pero quiere saber es el camino correcto? Cualquier vínculo de sugerencias? Gracias
- AsyncTask acceder a la base de datos - ¿Dónde inicializar, cerrar?
- Cómo obtener el progreso de un IntentService
- Error de "no incluir instancia de tipo" al llamar al método de otra clase en Android
- Sockets and asynctask de Android
- Android usando Renderscript para efectos de desenfoque falla causas A / libc: Fatal señal 7 (SIGBUS), código 2, error addr 0x9e6fa000 en tid 482 (AsyncTask # 1)
- Fuerza detener un bloqueo de lectura AsyncTask
- Mantenga la conexión de socket entre actividades en android
- Nombrar AsyncTask para crear perfiles en Android
- Reproducción de vídeo desde el servidor http en android
- AsyncTask cargando la imagen RecyclerView
- ¿Cómo usar la intención en la clase Asynctask?
- Android Asynctask para procesar tramas de video en vivo
- Diferencias entre SwingWorker de Java y Android AsyncTask
Si está preparado para utilizar AsyncTask, sí, mantenga pulsado los vínculos y realice nuevas tareas cuando sea necesario. Debe tener en cuenta que AsyncTask es como el 'cuchillo de bolsillo' para roscar en las aplicaciones de Android.
Si realmente necesita administrar un montón de tareas de fondo, y suena como lo hace, eche un vistazo a ThreadPoolExecutor. Tienes mucha flexibilidad. BlockingQueue ThreadPoolExecutor Más información Ejemplo
Eche un vistazo a HandlerThread y la clase Handler. Necesita un controlador para pasar las tareas al HandlerThread de fondo y otro para el hilo de la interfaz de usuario para pasar los resultados a la interfaz de usuario
Aunque viejo, llegó aquí desde Google: considere un IntentService.
Si realmente necesitas hacer eso,
Hacer algo Me gusta esto:
private class SomeTask extends AsyncTask<Void, Void, Void> { private mNextTask = null; public void enqueueTask(SomeTask task) { if (mNextTask == null) { mNextTask = task; } else { mNextTask.enqueueTask(task); } } ...... protected void onPostExecute(Boolean result) { if (mNexttask != null) mNextTask.execute(); } }
Y, al iniciar las tareas:
if (mRunningTask != null) { mRuningTask.enqueueTask(newTask); } else { mRuningTask = newTask; newTask.execute(); }