Volley不适合大型下载或流媒体操作,因为Volley在解析期间将所有响应保存在内存中。对于大型下载操作,请考虑使用类似DownloadManager的替代方法。
我只是想知道使用Volley或DownloadManager的门槛是什么?
如何判断下载是一个大型下载?
使用Volley和DownloadManager的典型案例是什么?
答案 0 :(得分:0)
嗯,这完全取决于您的用户案例,假设您有一个API,可以从您的数据库返回用户的个人资料,格式化并为您创建PDF。虽然您也可以使用Volley
,但最好使用SystemService
DownloadManager
,它完全在后台执行下载操作,并为您提供下载文件的回调。
虽然没有这样的阈值,但考虑到这种方式,如果您希望下载某事,请使用DownloadManager
。有些用例DownloadManager
也不能有效,假设您从服务器请求JSON并使用DownloadManager
而不是Volley
请求,则获取paritcular json完全在后台并发回给你,虽然这可以通过齐射高效地完成,这为在onErrorResponse
和onResponse
方法内处理不同状态提供了支持。
总而言之,您认为所有请求可能会影响当前UI的UI,并且不超过应用程序在运行时获得的平均堆内存(大约20-40MB),并且需要立即回调使用Volley
完成。其他操作不会影响当前的UI,可能是一个完整的后台操作(即使文件大小只有500KB)而不需要立即回调,应该使用DownloadMaanger
希望这会有所帮助。