StudyDownload
StudyDownload項目地址:https://github.com/Double2hao/StudyDownload
此項目展示了斷點續傳功能的簡單實現,主要實現了以下功能:
- 支持下載中途暫定下載
- 將下載進度存儲到本地,重啓app後會從上次下載的位置開始下載
- 支持清除原有的數據
理論概述
- 本項目爲了讓項目更加簡單化,儘量避免使用其他非基礎知識。下載與文件的異步操作使用AsyncTask來實現,本地存儲使用SharedPreferences來實現。
- 斷點續傳的相關HTTP的理論已經有博主整理的較好了,對此方面沒有接觸過的讀者推薦看看:Android Okhttp 斷點續傳面試解析
項目拓展
此項目只是一個讓新手更好理解斷點續傳的Demo,要投入實際使用還有很多需要補充和實現的地方,具體的也是要看實際的使用場景,筆者此處僅例舉幾項可以拓展的方向,有興趣的讀者可以自己去了解:
- 文件的校驗機制。可以通過存儲路徑,文件大小等方式。
- 如果斷點續傳到一半,再次開始的時候發現服務端的文件變了,如果判斷與處理?
- 文件過期,或者說文件的更新機制。
- 線程池。如果有同時多個文件在斷點續傳,如何在線程上支持。