ダウンロードするファイルがたくさんあります(可能であれば同時に)。そこで、N個のBroadcastReceiversを登録しACTION_DOWNLOAD_COMPLETE
、N個の要求をキューに入れます。
さて、DownloadManagerによってブロードキャストされたインテントを受信するまで、すべてが予想よりもうまくいっています。はい、すべての受信者がこのインテントを受け取ります。
うーん。特定のダウンロードID(DownloadManager.enqueue
返される)の行をフェッチし、このレシーバーにリンクされたURLを持つファイルのステータスがであるかどうかを確認し、STATUS_SUCCESSFUL
必要なことを実行してからレシーバーの登録を解除できます。
しかし...あなたが知っている、それはこれを行うための最良の方法ではありません。
インテントからURLまたはその他の情報を判別する方法はありますか、それともDownloadManagerは何かが行われたときにのみ通知しますか?または、複数のダウンロードを同時に処理するにはどうすればよいですか?