2015-12-04 49 views
0

我的Android應用程序需要在後臺進行大量的(〜150MB)下載。我正在使用一個意向服務,並在後臺執行此操作。Android非常低優先級的http下載

問題是,這個大的下載堵塞了所有其他下載。我使用Volley + Glide進行應用程序中的圖像下載,並使用OkHTTP進行大文件下載。我將使用Volley處理所有內容,但由於它不推薦用於大文件,因此我使用okHttp。)

(http://support.microsoft.com/kb/

Volley有一種設置下載優先級的方法,但AFAIK只用於確定下載何時開始,而不是用於帶寬ad/l使用的百分比。

我無法找到一種方法來設置okHTTP以非常低的優先級下載。

理想情況下,我想要做的只是將大的okHttp下載設置爲非常低的優先級,並且它會讓所有其他人下載。

回答

1

創建一個名爲ThrottledSource類,它擴展奧基奧的ForwardingSource。這個類需要限制每秒的千字節數。您可以在MockWebServer.java中看到限制流的示例。

當你完成後,你將有一個下載速度慢於需要的流。這將爲其他傳輸釋放帶寬。

0
  1. 將文件拆分成更小的塊,分拉鍊
  2. 下載的文件與IntentService當應用程序沒有運行(使用的jobscheduler)
+0

雖然這些都是有用的評論,但我會將它們歸類爲變通方法,而不是解決我的問題。 – treesAreEverywhere