Android http下载的优先级非常低

时间:2015-12-04 18:07:21

标签: android http download android-volley okhttp

我的Android应用需要在后台进行大量(~150MB)的下载。我正在使用意向服务并在后台执行此操作。

问题是这个大的下载阻塞了所有其他下载。

(我在应用程序中使用Volley + Glide进行图像下载,使用OkHTTP进行大文件下载。我会将Volley用于所有内容,但由于不推荐用于大型文件,我和#39 ; m使用okHttp。)

Volley有一种设置下载优先级的方法,但是AFAIK,它只用于确定下载何时开始,而不是用于d / l使用的带宽百分比。

我无法找到一种方法来设置okHTTP以非常低的优先级下载。

理想情况下,我想要做的只是将大型okHttp下载设置为非常低的优先级,并且它会让其他所有内容下载。

2 个答案:

答案 0 :(得分:1)

创建一个名为ThrottledSource的类,它扩展了Okio的ForwardingSource。这个类需要限制每秒千字节数。您可以在MockWebServer.java中看到限制流的示例。

当你完成后,你将拥有一个下载速度低于它所需的流。这将为其他转移释放带宽。

答案 1 :(得分:0)

  1. 将文件拆分为较小的块,例如。拆分拉链
  2. 当应用未运行时使用IntentService下载文件(使用JobScheduler)