2017-01-21 19 views
0

私はプライベートアプリケーションストレージにファイルをダウンロードする必要がありました。アンドロイドダウンロードマネージャは、私はこのライブラリを使用していますことを行うことができないので:ノボダダウンロードマネージャ、ダウンロード完了リスナーの設定方法

https://github.com/novoda/download-manager

私は、ダウンロードを開始することができますが、ダウンロードが完了すると、私は放送を得ることはありません。誰もがこのライブラリを使い、助けてくれる人はいますか?

これは私が今のリスナーを送った方法です:

private void setupDownloadingExample() { 
    Uri uri = Uri.parse(BIG_FILE); 
    final Request request = new Request(uri) 
      .setDestinationInInternalFilesDir(Environment.DIRECTORY_MOVIES, "penguins.dat") 
      .setNotificationVisibility(NotificationVisibility.ACTIVE_OR_COMPLETE) 
      .setTitle("Family of Penguins") 
      .setDescription("These are not the beards you're looking for") 
      .setBigPictureUrl(PENGUINS_IMAGE); 

    findViewById(R.id.main_download_button).setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(@NonNull View v) { 
        onComplete = new BroadcastReceiver() { 
         @Override 
         public void onReceive(Context context, Intent intent) { 
          Toast.makeText(MainActivity.this, "Done", Toast.LENGTH_SHORT).show(); 
         } 
        }; 
        (MainActivity.this).registerReceiver(onComplete, 
          new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); 
        downloadManager.enqueue(request); 
       } 
      }); 
} 

コードスニペットは、ライブラリによって提供される例からです。レポ内部のデモから

答えて

0

、あなたがダウンロードイベントをリッスンする放送受信機を使用する必要があります。

https://github.com/novoda/download-manager/tree/master/demo-extended

登録マニフェストでこのよう:

https://github.com/novoda/download-manager/blob/master/demo-extended/src/main/AndroidManifest.xml#L63-L69

<receiver 
    android:name="com.novoda.downloadmanager.demo.extended.DownloadBatchStartedReceiver" 
    android:exported="false"> 
    <intent-filter> 
    <action android:name="com.novoda.downloadmanager.action.BATCH_FIRST_TIME_START" /> 
    </intent-filter> 
</receiver> 

その後、ダウンロードを完了することができます:

https://github.com/novoda/download-manager/blob/master/demo-extended/src/main/java/com/novoda/downloadmanager/demo/extended/DownloadBatchStartedReceiver.java

public class DownloadBatchCompletionReceiver extends BroadcastReceiver { 

    private static final int UNKNOWN_BATCH_ID = -1; 
    private static final String TAG = DownloadBatchCompletionReceiver.class.getSimpleName(); 

    @Override 
    public void onReceive(@NonNull Context context, @NonNull Intent intent) { 
     long batchId = intent.getLongExtra(DownloadManager.EXTRA_BATCH_ID, UNKNOWN_BATCH_ID); 
     Toast.makeText(context, "Batch completed with id: " + batchId, Toast.LENGTH_SHORT).show(); 
     Log.d(TAG, "Batch completed: " + batchId); 
    } 

} 

すべてのダウンロードは、そのちょうど1ファイルがダウンロードされた場合でも、バッチとして扱われます。

+0

返信いただきありがとうございます。すぐに対応できるはずです –

関連する問題