天天看點

Android -- 多線程下載下傳

因為Android應用程式是java寫的,基本上很多java寫的程式都可以直接照搬到Android上面,移植性非常Good。這裡講一下多線程下載下傳,就是每個線程都下載下傳自己的那部分,那麼就需要平均配置設定分割線程下載下傳多少,一張圖來說明一下。

Android -- 多線程下載下傳

第一個要點:http頭裡面有一個”Range”,就是在這裡設定從哪裡開始下載下傳。

第二個要點:RandomAccessFile,java給出的這個API。

分别開啟多個線程,每個線程規定得有下載下傳的大小,然後分别下載下傳,下載下傳下來的inputstream再組合在一起,怎麼組合呢,就會用到RandomAccessFile。

downLoad函數                                                                          

Android -- 多線程下載下傳
Android -- 多線程下載下傳

httpUrlConnection先得到要下載下傳的檔案的大小,然後将這個檔案分别分為幾份(我這裡是開啟三個線程下載下傳,是以平均分了3份)。還有先建立一個與下載下傳大小一樣的檔案,通過RandomAccessFile實作。

下載下傳子線程                                                                                   

Android -- 多線程下載下傳
Android -- 多線程下載下傳

在這裡建立了一個txt檔案,目的就是将下載下傳到哪的資料存進去,如果網斷了再下載下傳的話,實作斷點下載下傳,那麼下次下載下傳就可以從這裡讀取資料,然後在寫入檔案,就不需要重頭再配置設定大小下載下傳了。這裡還用到了線程同步去更新進度條。

删除臨時txt檔案threadFinish                                                      

Android -- 多線程下載下傳
Android -- 多線程下載下傳

Handler                                                                                    

Android -- 多線程下載下傳
Android -- 多線程下載下傳

我是天王蓋地虎的分割線                                                               

MutilDownLoader.zip(JAVA)

多線程下載下傳.zip(Android)

本文轉自我愛物聯網部落格園部落格,原文連結:http://www.cnblogs.com/yydcdut/p/3796197.html,如需轉載請自行聯系原作者

繼續閱讀