какая-то очередь для асинтаска

Здравствуйте, у меня есть ListView со списком файлов. я нажимаю элемент и начинаю загружать этот файл в асинтаске. затем я нажимаю еще один, и он должен быть помещен в очередь, дождаться этого файла и начать загрузку после его завершения. я могу сделать некоторый класс, который будет содержать все нажатые ссылки, и передать его части загрузки асинхронной задачи? и чем их как-то обработать. но хотите знать, это правильный путь? любые ссылки предложений? спасибо


person SERG    schedule 14.04.2011    source источник
comment
Очереди хороши, если вам все равно, когда они будут выполнены, главное, чтобы они были выполнены. Если некоторые задачи нужно выполнить раньше других, используйте приоритетную очередь.   -  person    schedule 14.04.2011


Ответы (3)


Если вы настроены на использование AsyncTask, тогда, да, держите нажатые ссылки и запускайте новые задачи, когда это необходимо. Обратите внимание, что AsyncTask похож на «карманный нож» для многопоточности в приложениях для Android.

Если вам действительно нужно управлять кучей фоновых задач, и похоже, что вы это делаете, взгляните на ThreadPoolExecutor. Вы получаете большую гибкость. BlockingQueue ThreadPoolExecutor Подробнее Пример< /а>

person Brandon    schedule 15.04.2011

Взгляните на HandlerThread и класс Handler. Вам нужен один обработчик для передачи задач в фоновый HandlerThread и другой для потока пользовательского интерфейса, чтобы передать результаты обратно в пользовательский интерфейс.

person Philip Pearl    schedule 20.11.2011

Несмотря на то, что он старый, он попал сюда из Google: рассмотрим IntentService.

person Joe Plante    schedule 30.10.2012