2011-03-12 29 views
5

我開發了一個應用程序,必須下載非常大的文件,平均爲100 MB。 一切正常,但由於正常的原因,例如移動連接數下降到0幾秒鐘或無線備用時間的某些時候,在服務中運行的下載(如市場更新)可能被破壞或中斷。 有一種錯誤恢復的方式,可能與http範圍? 如果有人已經有這個問題會很高興有一個工作代碼的例子。 :-) 謝謝從android下載大文件,出現錯誤恢復

回答

2

在服務器上,使用文件上的「split」將其拆分成許多較小的文件,然後用md5sum生成md5sum的檢查文件。

在android上,你需要下載所有的部分,檢查md5sum,返回並得到任何沒有正確下載的東西,然後把它們放在一起。

我從來沒有在android上做過這件事,但在過去的糟糕日子裏,它曾多次使用過片狀電話調制解調器連接。

+1

這會工作,但這不是有點矯枉過正?我不是Android開發人員,但他可以像在虛擬塊中一樣輕鬆地分割文件。從服務器請求塊(使用HTTP範圍),爲塊狀態使用位域,並請求未送達的塊再次返回。不需要校驗和,TCP/IP將確保數據是正確的。評論,因爲我沒有關於在Android上的實施的答案。 – 2011-03-12 09:59:04

+0

@Ekin取決於創建HTTP範圍請求比打破服務器上的文件更容易。校驗和的唯一原因是在不知道文件大小的情況下處理中斷的下載。 Dinsosaur-ish,我知道。 – Paul 2011-03-12 10:20:10

+0

如果我在服務器上分割文件,我不需要任何特定的調用,我只是給我的客戶端提供部分校驗和的不同部分的URL,以便告訴客戶哪些部分無效或損壞, -下載它。我的想法是在不分割文件的情況下使用http範圍,在這種情況下,如果您在服務器上沒有控制權,則也可以解決問題,而不是分割文件。我的問題是更喜歡哪個是最好的做法來抓住特定的下載錯誤,並要求用戶使用http範圍方法恢復它? – 2011-03-12 12:30:51