[Android執行個體] Android之斷點續傳下載,android執行個體
在我們做開發的時候經常遇到的就是下載了,現在下載的方法有很多很多,那麼怎麼做到斷點續傳下載呢!很多人都頭疼這個問題,如果我們沒有很好的邏輯真不是很容易解決啊。我參考了一下前輩們的資料了整理了一個項目,能實現多個檔案的同時下載。
斷點續傳下載,顧名思義,那就是我們在一次下載未結束時,退出下載,第二次下載時會接著第一次下載的進度繼續下載。那麼怎麼記錄第一次下載的資料呢,這裡肯定就要用到資料庫了。下面就是我建立資料庫的一個SQLiteOpenHelper類。用來首次運行時建立資料庫。
DBHelper.java
複製代碼
下面看主介面的布局,在這裡,我只設計了一個ListView來顯示下載的音樂的名稱,和一個開始下載按鈕和一個暫停按鈕。
布局檔案如下:
main.xml:
複製代碼
list_item.xml:
複製代碼
我們要定義一個記錄在下載時各個時期的資料的類,這裡我建立了一個DownloadInfo類來記錄。代碼如下:
DownloadInfo:
複製代碼
在下載時,我們有進度條來顯示進度,怎麼確定進度條的進度,大小和起始位置呢?這裡我定義了一個LoadInfo類來記錄下載器詳細資料。代碼如下:
LoadInfo:
複製代碼
下面是最最重要的一步,那就是定義一個下載器來進行下載了,這裡我就不多說,具體解釋在代碼中都有註解,供大家研究參考。
Downloader:
複製代碼
在這邊下載器類的定義中,我們用到了許多關於進行資料庫操作的方法,這裡我定義了一個資料庫工具類,來提供這些方法,代碼如下:
Dao:
複製代碼
下面的是程式的主程式,其他的不說了,直接上代碼:
複製代碼
最後我們需要在android Manifest.xml中添加這兩個許可權一個是訪問internet的許可權,另一個是寫外存的許可權。
複製代碼
最後啟動並執行:
萬事俱備只欠東風啦!哈哈,我需要在我的web工程裡放幾個音樂檔案。
下載後得到的檔案可在sdcard下面找到!