【问题标题】:what is usage scenario for DownloadManager and volleyDownloadManager 和 volley 的使用场景是什么
【发布时间】:2018-03-09 21:31:44
【问题描述】:

android training 说:

Volley 不适合大型下载或流式操作,因为 Volley 在解析期间将所有响应保存在内存中。对于大型下载操作,请考虑使用像 DownloadManager 这样的替代方案。

我只是想知道使用 Volley 或 DownloadManager 的门槛是多少?

如何判断一次下载是不是大下载?

使用 Volley 和 DownloadManager 的典型案例是什么?

【问题讨论】:

    标签: android android-volley android-download-manager androidhttpclient


    【解决方案1】:

    这是一个完全取决于您的用户案例的决定,假设您有一个 API,它可以从您的数据库中返回用户的个人资料,对其进行格式化并为您创建一个 PDF。虽然您也可以为此使用Volley,但最好使用SystemService,如DownloadManager,它完全在后台执行下载操作,并在下载文件时为您提供回调。

    虽然没有这样的阈值,但请以这种方式考虑,如果您希望下载某些内容,请使用DownloadManager。在某些用例中,DownloadManager 也效率不高,假设您正在从服务器请求 JSON 并使用 DownloadManager 而不是 Volley 请求,特定的 json 完全在后台获取并发回对你来说,虽然这可以通过 volley 有效地完成,它支持在 onErrorResponseonResponse 方法中处理不同的状态。

    因此,总结一下,您认为当前可能影响 UI 的所有请求不超过应用程序在运行时获得的平均堆内存(大约 20-40MB),并且需要即时回调应该是使用Volley 完成。其他对当前 UI 影响不大且可能是完整的后台操作(即使文件大小仅为 500KB)且不需要即时回调的操作应使用 DownloadMaanger

    希望这会有所帮助。

    【讨论】:

    • 如果我想从云端下载jsonArray或json列表,而json数据总共超过20MB或40MB,我应该使用哪一个?顺便说一句,这些 json 数据应该每 10 天或更长时间更新一次。
    • 10 天后,您的意思是您正在使用JobScheduler 服务或同等服务吗?如果是,您可以使用DownloadMaanger,前提是您不需要立即更新 UI。
    猜你喜欢
    • 2022-01-22
    • 2013-09-06
    • 1970-01-01
    • 2016-04-13
    • 2011-06-26
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多