答えて

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です。あなたは静的登録BroadcastReceiveを使用しています。 – KeLiuyue

+0

@ user3678389この[https://developer.android.com/guide/components/broadcasts.html](https://developer.android.com/guide/components/broadcasts.html)をご覧ください。 – KeLiuyue

関連する問題