回答

0

你可以这样做。

DownloadManager downloadManager; 
    downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE); 
    Uri uri = Uri.parse("http://xxx.apk"); 
    DownloadManager.Request request = new DownloadManager.Request(uri); 
    // You can choose network type 
    request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI); 
    downloadManager.getRecommendedMaxBytesOverMobile(getApplicationContext()); 
    final long flag = downloadManager.enqueue(request); 

    IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE); 
    BroadcastReceiver receiver = new BroadcastReceiver(){ 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      long anotherFlag = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID,-1); 
      if(anotherFlag == flag){ 
       // do something you want to do 
      } 
     } 

    }; 
    registerReceiver(receiver, filter); 
+0

非常感谢KeLiuyue,但是我在想实现一个类,它实现了broadcastreceiver。为此,我试图添加,它不显示动作名称=“android.intent.action.DOWNLOAD_COMPLETE”。可能吗? – user3678389

+0

@ user3678389是的,你可以做到这一点。我的方式是动态注册BroadcastReceive.You使用静态注册BroadcastReceive.It没关系。 – KeLiuyue

+0

@ user3678389你可以看看这个[https://developer.android.com/guide/components/broadcasts.html](https://developer.android.com/guide/components/broadcasts.html) – KeLiuyue

相关问题