以下是需要翻译的内容:
我有一个如下的使用场景:
需要下载多个文件,例如 A B C D E F。
在开始下载时,如果 A B 下载完成,而 C 正在下载,我想要中断 C 的下载并开始下载 E。
之后,如果没有其他干扰,继续下载 C D F。
到目前为止,根据我的研究,只有 cancel 方法。
downloadManager.remove(downloadReference); 如何通过 Download manager 实现这个功能?或者还有其他方法吗?谢谢。
private long startDownload(String url) {
Uri DownloadUri = Uri.parse(url);
String fileName = StorageUtils.getFileNameFromUrl(url);
String destination = null;
downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(
DownloadUri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
request.setAllowedOverRoaming(false);
request.setTitle(fileName);
request.setDescription("com.example.services");
if (StorageUtils.isSDCardPresent()
&& StorageUtils.isSdCardWrittenable()
&& StorageUtils.checkAvailableStorage()) {
destination = StorageUtils.SDCARD_ROOT;
}
try {
StorageUtils.mkdir();
} catch (IOException e) {
e.printStackTrace();
}
request.setDestinationInExternalPublicDir(destination, fileName);
downloadReference = downloadManager.enqueue(request);
Log.d("Downloader","Start download manager: " + destination + fileName);
return downloadReference;
}