什么时候DownloadManager比HttpUrlConnection好?

时间:2014-04-10 00:13:47

标签: java android httpurlconnection download-manager android-download-manager

我正在从Web API请求纯文本数据,这些数据可以大到约5 MB或小到约1 KB。

我对使用HttpUrlConnection犹豫不决,因为超时的可能性增加,而且5 MB InputStream的内存占用量也很大。

来自Android文档:

The download manager is a system service that handles long-running HTTP downloads.

5 MB是否算作“长时间运行?”似乎HttpUrlConnection的预期用途是用于小数据包,而不是5 MB的文本。

1 个答案:

答案 0 :(得分:2)

  

由于超时的可能性增加,我对使用HttpUrlConnection犹豫不决

我不确定您对超时的担忧。只要您以合理的速度下载数据,我就不明白为什么您的服务器会放弃您的连接。

现在,您可能会遇到用户移动和清理连接丢失的问题(例如,从WiFi切换到移动数据)。

  

和5 MB InputStream的内存占用

InputStream不是5MB。对于那种大小的东西,你通常一次读取几KB,然后将结果写入文件。

  

5 MB计为"长期运行?"

这取决于你。它足够大,我考虑DownloadManager

  

似乎HttpUrlConnection的预期用途是用于小数据包,而不是5 MB的文本。

HttpURLConnection用于从一个字节到一个太字节的所有内容,理论上超出范围。 DownloadManager可能使用HttpURLConnection

DownloadManager为您做的是:

  • 处理连接故障转移并获取下载
  • 在下载过程中保持设备唤醒