Android多線程斷點續傳下載

來源:互聯網
上載者:User

標籤:android   多線程斷點續傳下載   多線程下載   斷點下載   

這個月接到一個項目,要寫一個像360助手一樣的對於軟體管理的APP;其中,遇到了一個問題:多線程斷點下載

這個 ,由於之前沒有寫過這方面的應用功能。所以,不免要自學了。然後就在各個昂站上收索並整理了一下。跟大家分享一下,也能加深我在這方面的理解。

什麼是多線程下載?

多線程下載其實就是迅雷,BT一些下載原理,通過多個線程同時和伺服器串連,那麼你就可以榨取到較高的頻寬了,大致做法是將檔案切割成N塊,每塊交給單獨一個線程去下載,各自下載完成後將檔案塊組合成一個檔案,程式上要完成做切割和組裝的小演算法

什麼是斷點續傳?

斷點續傳,就是當我們下載未結束時候,退出儲存下載進度,當下次開啟繼續下載的時接著上次的進度繼續下載,不用每次下載都重新開始,那麼有關斷點續傳的原理和實現手段。

怎麼完成多線程斷點續傳?

將兩者合二為一需要程式記住每個檔案塊的下載進度,並儲存入庫,當下載程式啟動時候你需要判斷程式是否已經下載過該檔案,並取出各個檔案塊的儲存記錄,換算出下載進度繼續下載,在這裡你需要掌握java多線程的基本知識,handler的使用,以及集合,演算法,檔案操作等基本技能,同時還要解決sqlite資料庫的同步問題,因為它是不太怎麼支援多線程操作的,控制不好經常會出現庫被鎖定的異常,同時在android2.3以後就不能activity中直接操作http,否則你將收到系統送上的NetworkOnMainThreadException異常,在UI體驗上一定記住要使用非同步完成。

那麼,瞭解過這些之後來看一下源碼就會拉結了。。。。。。

先看一下,:


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


至於那些部分代碼,我就不在這裡貼了;我覺得還是直接看源碼的方便。

   這裡是源碼的下載網址,點擊即可下載

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.