Очередь загрузки файлов Android с поддержкой отмены

Мы разрабатываем Android-приложение, где необходимо асинхронно загрузить несколько фотографий на наш сервер. Учтите, что как только снимок будет сделан, он начнет загружаться. Как только он завершит загрузку, начнется загрузка следующего (все они будут поставлены в очередь).

Однако также важно поддерживать функцию отмены, а это означает, что пользователь может взаимодействовать с приложением таким образом, чтобы удалить изображение из очереди или даже отменить текущую загрузку.

После поиска возможных решений мы пришли к следующим возможным сценариям:

1) Использовать IntentService для механизма очереди и внедрить в него собственную логику. Тем не менее, есть некоторые опасения, насколько легко будет поддержать отмену.

2) Используйте SD-карту и локальную базу данных для хранения файлов и службу для проверки наличия новых файлов. Это описано здесь: Android (или iOS) — очередь загрузки изображений

3) Найдите способ использовать встроенный Android DownloadManager для загрузок (можно ли это сделать?)

4) Используйте функцию AsyncTask и isCancelled().

5) Или, в идеале, найти другой встроенный механизм Android/Java, чтобы сделать все вышеперечисленное без проблем.

Есть идеи?


person Fotis Hantzis    schedule 16.09.2012    source источник