我想在Android上使用DownloadManager
下载多个文件。我想在通知区域只看到1个通知,其中ProgressBar
将显示整个下载进度状态。有可能吗?
例如,有2个文件,第1个是1MB,第2个是3Mb。当DownloadManager
下载1MB时,进度状态为25%。
答案 0 :(得分:0)
您正在描述的行为默认情况下已在DownloadManager
中可用。您只需要排队几个下载,Android操作系统就会自动向您显示所有排队下载的进度。
要使多个下载入队,您将必须执行以下操作:
val url = "http://your-file1.extension"
val request = DownloadManager.Request(Uri.parse(url))
request.allowScanningByMediaScanner()
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE)
request.setDestinationInExternalPublicDir(WALKAHOLIC_SDCARD_DIRECTORY, "your-file1.extension")
val url2 = "http://your-file2.extension"
val request2 = DownloadManager.Request(Uri.parse(url2))
request2.allowScanningByMediaScanner()
request2.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE)
request2.setDestinationInExternalPublicDir(YOUR_DESIRED_DOWNLOAD_DIRECTORY, "your-file2.extension")
val manager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
val downloadId1 = manager.enqueue(request)
val downloadId2 = manager.enqueue(request2)
如您所见,我创建了2个请求(每个下载一个),并且配置了通知可见性:
setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE)
除此之外,两个请求都已排队到DownloadManager
。
可能是在早期版本的Android中,下载是单独显示的。但至少在Android 7、8和9中,它们是以组合方式显示给我的。这样您就可以查看已请求的所有下载的总进度。