提问人:RKB 提问时间:9/10/2021 最后编辑:RKB 更新时间:9/10/2021 访问量:1154
如何使用工作管理器下载一组数据,其中包括图像和视频以及进度详细信息?
How to download a set of data which includes images and videos using work manager along with progress detail?
问:
在我的 Android 应用程序中,有一个从服务器获取的一些对象的列表。此对象 JSON 中的每一个都包含一些文本数据以及一组图像和视频 URL。用例是,用户只需单击一下即可下载整个数据,并将其存储在本地存储中。
我正在尝试使用工作管理器的不同方法来实现这一目标,但由于正在下载多个文件,因此我无法找到一种方法来跟踪整个下载进度以显示在 UI 中。另外,我如何确保该特定对象的全部数据是否完全从下载的文件中下载,以防其中任何一个失败?
答:
2赞
Sam Chen
9/10/2021
#1
将此下载进度作为一个整体进行跟踪,以便在 UI 中显示,因为有多个文件正在下载。
在过去,我们需要使用 ,但现在它可以在 上使用。若要与“ForegroundService”功能一起使用,请查看以下文章:ForegroundService
WorkManager
WorkManager
我怎样才能确保该特定对象的全部数据是否完全从下载的文件下载,以防其中任何一个失败?
您可以对某个字段进行 null 检查。
评论
1赞
Anton Malyshev
6/2/2022
在 Android 12 中,使用 setForeground / setForegroundAsync 的方法不可靠。正如文档 developer.android.com/reference/androidx/work/ 中所述:“当进程受到前台服务限制时,调用 setForegroundAsync 将失败并显示 IllegalStateException。请考虑改用 WorkRequest.Builder.setExpedited(OutOfQuotaPolicy) 和 getForegroundInfoAsync()。但是,getForegroundAsync 只允许返回一次通知,因为它返回 .在这种情况下,我们是否可以更新通知?ListenableFuture
评论
DownloadManager