2015-04-09 2 views
1

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

DownloadManager.Java

if(downloaddata.size()>0){    
    for(int i=0;i<downloaddata.size();i++){ 
     downloadFiles(downloaddata.get(i).getFile_id(),downloaddata.get(i).getFile_url(),"OTHER"); 
    } 
} 


public void downloadFiles(String myid,String myurl,String type){ 
     createFolder(); 
     String fileName = URLUtil.guessFileName(myurl, null, null); 
     Uri uri=Uri.parse(myurl); 
     request=new DownloadManager.Request(uri); 
     request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI); 
     request.setTitle(myid); 
     request.setMimeType(type); 
     request.setDestinationInExternalPublicDir("/peakmedia",fileName);   request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN); 
     downloadReference=downloadManager.enqueue(request); 
     downloadlist.add(downloadReference); 

    } 
+0

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

+0

Можете ли вы подробнее остановиться на этом? Не понимаю слова. – greenapps

+0

Вы можете использовать собственный 'IntentService' для загрузки файлов вместо использования DownloadManager. – JonasCz

ответ

4

DownloadManager вещает ACTION_DOWNLOAD_COMPLETE, так что вы можете запросить следующий файл для загрузки, когда BroadcastReceiver получает успех предыдущего файла.

+0

Как я могу обновить ход этих загрузок на своем главном экране? Я использую манифест-заявленный приемник. Любая помощь приветствуется. заранее спасибо –