安卓開發之非常好用的AndroidOne架構DownloadManager,androidone架構

來源:互聯網
上載者:User

安卓開發之非常好用的AndroidOne架構DownloadManager,androidone架構

AndroidOne架構是採用MVC模式,整合了Android主流開源技術及組件,是一款極速且簡單高效開發架構,整個項目包含兩個部分AndroidOne,oneCore

AndroidOne為示範項目,裡面介紹了該架構的使用方法及Demo

oneCore是該架構的核心項目,AndroidOne依賴於oneCore

:https://github.com/devinhu/androidone

AndroidOne架構繼承了很多的功能,在文檔中可以得知,在這裡主要介紹一下DownloadManager的使用

1.首先要得到一個DownloadManager的執行個體,除了下面這種沒有參數的方法,還有一種帶參數的方法來產生執行個體getInstance(String rootPath);rootPath是設定下載的檔案儲存在哪裡

 如果不設定會儲存在SDCard中download目錄下。

 DownloadManager dm = DownloadManager.getInstance();

2.然後設定DownloadManager的回調方法

dm.setDownLoadCallback(new DownLoadCallback(){            @Override            public void onLoading(String url, int bytesWritten, int totalSize) {            }            @Override            public void onSuccess(String url, String filePath) {                            }            @Override            public void onFailure(String url, String strMsg) {                          }        });

  這個回調是對下載過程的一些處理:

  onLoading()方法當檔案正在下載的時候會頻繁的調用。裡面有三個參數,URL可以用來唯一標識當前是哪個下載任務,bytesWritten是當前已經下載的檔案大小;totalSize是下載檔案的總     大小。通過這兩個int型的資料可以確定當前檔案下載的進度。

  onSuccess()方法會在下載完成的時候調用。

  onFailuer()方法會在下載失敗的時候調用。

3.添加下載檔案,開始下載,暫停下載,繼續下載

 

dm.addHandler(url);dm.pauseHandler(url);dm.continueHandler(url);

 看源碼可以發現在DownloadManager裡面有一個方法startManager();這個方法的作用是開始下載。我們在代碼中沒有調用這個方法是因為addHandler()方法中會調用startManager()方法

 上面三個方法建議在按鈕的點擊事件中調用,這樣可以更加直觀的控制整個下載過程

 

DownloadManager是一個單例類,所以使用的時候如果產生了太多的執行個體不需要擔心;

DownloadManager支援多線程下載,多任務同時下載,斷點續傳等等功能,DownloadManager預設支援同時下載五個檔案,如果你的不能滿足你的需求可以更改任務數

AndroidOne架構源碼使用eclipse開發,所以在Android Studio上面使用需要先將oneCore項目導成Android Studio 格式,再講oneCore匯入Android Studio添加項目依賴

或者在eclipse裡面直接導成jar包,將jar包添加到libs目錄下引入項目。在導成jar包的時候注意不要勾選設定檔,否則會報錯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.