2011-10-04 44 views
0

我正在編寫一個Android應用程序,它必須下載相當多的圖像文件;之前的開發者使用各種HttpClient類型類來編寫它。這些沒有提供任何進度信息,如果下載失敗,無法恢復丟失的比特(據我所知)。Android中的線程安全漸進式下載

我們希望能夠向用戶報告進度,特別是如果速度慢,我們希望能夠恢復下載,所以我使用HttpUrlConnection重新實現了這一點。它工作正常,單線程,但不是多線程:我不知道到底發生了什麼,但圖像被損壞。 Android說這個實例確實不是線程安全的。

據我所知,這意味着我們必須在多線程下載(我的同事報告稍快)和恢復能力之間進行選擇。有沒有什麼辦法可以在Android上同時實現我自己的線程安全的HTTP連接類?

回答

0

想到兩件事。 AsyncTask類(請參見:Painless Threading)是爲這類事情而構建的,而new DownloadManager類是作爲一種相當健壯的方法開發的,可以在必要時重新啓動,在設備重新啓動後堅持等等。顯然這取決於您的情況,但要給那些一看,看看他們是否是你需要的東西。

+0

這些已經在'AsyncTasks'內運行;問題是下載似乎是互相影響的。 DownloadManager確實看起來不錯,謝謝。 –