Android http 下载优先级非常非常低

Android http download at very very low priority

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

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

(我使用 Volley+Glide 在应用程序中下载图片,使用 OkHTTP 下载大文件。我会使用 Volley 处理所有内容,但由于不推荐用于大文件,所以我使用 okHttp。)

Volley 有一种设置下载优先级的方法,但据我所知,这仅用于确定下载何时开始,而不用于确定 d/l 使用的带宽百分比。

我找不到将 okHTTP 设置为以非常低的优先级下载的方法。

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

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

创建一个名为 ThrottledSource 的 class 来扩展 Okio 的 ForwardingSource. This class needs to limit the kilobytes per second. You can see examples of throttling a stream in MockWebServer.java

完成后,您将拥有一个下载速度比需要的慢的流。这将为其他传输释放带宽。