2014-03-25 70 views
0

長時間運行的HTTP請求,我要尋找一個更完整的庫,這將使我取消長時間運行的HTTP請求(例如文件上傳是至少100 MB的數據)的取消。處理中的Android

我看到Volley提供了一個取消API,但它似乎只處理不調用回調而實際上並沒有停止執行(我可能是錯誤的),它也不推薦用於長時間運行的請求。

我也一直在尋找ION https://github.com/koush/ion,據推測它能夠處理取消,因爲它會返回一個您可以取消的未來任務,但我不知道這是否是我的案例的正確選擇。我不希望這些請求並行運行,而是按順序運行。

我自己也寫過這樣一個庫(https://github.com/darko1002001/android-rest-client),我已經使用很長時間了,並且一直在努力工作,我已經完成了一些解決方法以適應取消某些情況下的請求和進度更新我有過,但說實話,我並不覺得它對於這個要求來說是乾淨的或足夠強大的。

我通常使用用於請求執行一個線程池,但是,這樣其他短請求而不會被阻擋,但長的操作仍執行在單個線程池隊列移動長時間運行的請求。我覺得我的解決方法是更好的,如果我仍然要管理自己的請求執行對於長時間運行的請求是連續的。

有人能分享在建設這樣一個特徵他/她的經驗?任何關於使用什麼的建議/建議?

+0

HTTP找到詳細://loopj.com/android-async-http/ – r4jiv007

+0

但這不支持取消?可以?任何這樣的例子? – DArkO

回答

1

對於下載,考慮使用Android Download Manager。使用簡單,用戶可以隨時取消。

對於上傳你可以使用一個Wakefull Service,做自己上傳。 HTTP上傳並不是非常複雜,所以我只需要這樣做。根據Android版本的不同,可以使用Apache HTTP lib(2.3.3之前版本)或HTTPUrlconnection(更新版本)。還要注意的是,volley code是開源的,你可以借用他們的上傳邏輯(或其部分):)

+0

我需要上傳+下載 – DArkO

+0

哦,我錯過了一部分。我會給它一些想法。 – meredrica

+0

編輯我的回覆,也許這有助於 – meredrica