サーバーから 2 つのファイルをダウンロードしたいのですが、1 つのファイルをキューに入れると、すべてがスムーズに進みます。2 つのファイルがあると、ダウンロード マネージャーがこの例外をスローします。
W/DownloadManager﹕ Exception for id 126: Http Range request failure: totalBytes = 5424932, bytes recvd so far: 5424932
java.lang.IllegalStateException: Http Range request failure: totalBytes = 5424932, bytes recvd so far: 5424932
at com.android.providers.downloads.DownloadThread.handleOtherStatus(DownloadThread.java:735)
at com.android.providers.downloads.DownloadThread.handleExceptionalStatus(DownloadThread.java:724)
at com.android.providers.downloads.DownloadThread.executeDownload(DownloadThread.java:289)
at com.android.providers.downloads.DownloadThread.run(DownloadThread.java:203)
これはファイルのダウンロードの最後に発生し、完了し、この例外をスローして外部ストレージに配置せず、2 番目のファイルが正常にダウンロードされます。
これは簡単なコードです: (URL は問題ありません)
for (String url : urls)
{
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, parseFileNameFromURL(url));
request.setVisibleInDownloadsUi(false);
((DownloadManager) getSystemService(DOWNLOAD_SERVICE)).enqueue(request);
}