2016-04-20 2 views
0

В моем приложении, загрузить какой-либо файл сAndroid | Отправить «статист» в BroadcastReceiver

 DownloadManager downloadManagerStore = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); 
     Uri downloadUri = Uri.parse(queryURL); 
     DownloadManager.Request request = new DownloadManager.Request(downloadUri); 
     request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE) 
       .setAllowedOverRoaming(false)     .setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE) 
       .setDestinationInExternalPublicDir(dir); 
     downloadManagerStore.enqueue(request); 

И я управляю файл с BroadcastReceiver, это код:

@Override 
public void onReceive(Context context, Intent intent) { 
    this.context = context; 
    //do something 
} 

Но я два различных загрузите и когда закончите прогон BroadcastReceiver, но как я могу узнать, какая загрузка закончена?

+0

http://developer.android.com/reference/android/app/DownloadManager.html#EXTRA_DOWNLOAD_ID – CommonsWare

ответ

1

Сохранить Идентификатор загрузки в настройках (наиболее предпочтительно) или в любом месте, когда вы enqueue() ваш запрос скачать -

long downloadId = downloadManagerStore.enqueue(request); 

И тогда в вашем приемнике, когда загрузка будет завершена вы можете сопоставить ваши сохраненные downloadId с DownloadManager.EXTRA_DOWNLOAD_ID как ниже -

@Override 
    public void onReceive(Context context, Intent intent) { 
     this.context = context;    

      String action = intent.getAction(); 
      if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) { 
        long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0); 
       //Check your saved "downloadId" with "id" and perform your task depending on that 
      }  
} 
+0

Благодаря человеку! Ты помог мне. –

Смежные вопросы