DownloadManager:系統的文件下載器

效果圖

系統通知欄

這裏寫圖片描述

系統文件夾

這裏寫圖片描述

示例代碼

String uriStr = "https://qd.myapp.com/myapp/qqteam/AndroidQQ/mobileqq_android.apk";
Uri mTargetUri = Uri.parse(uriStr);
DownloadManager.Request mRequest = new DownloadManager.Request(mTargetUri);
//設置允許使用的網絡類型,這裏是移動網絡和wifi都可以
mRequest.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
//下載過程中通知欄會一直顯示該下載,在下載完成後仍然會顯示,直到用戶點擊該通知或者消除該通知
mRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
mRequest.setTitle("下載");
mRequest.setDescription("資源包正在下載");
//設置下載後文件存放的位置,後面兩個參數分別是 “文件路徑”,“文件名稱”
mRequest.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS, "meitu.apk");

DownloadManager mManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
if(mManager!=null){
   mManager.enqueue(mRequest);
}

DownloadManager類中的廣播會在特定的時候自動發送,我們只要定製自己的Receiver來接收廣播就行.

//下載完成時,發送廣播對應的Action爲:ACTION_DOWNLOAD_COMPLETE
//Notification被點擊時發送廣播對應的Action爲:ACTION_NOTIFICATION_CLICKED
IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
DownloadCompleteReceiver receiver = new DownloadCompleteReceiver();
registerReceiver(receiver, filter);

class DownloadCompleteReceiver extends BroadcastReceiver {
     @Override
     public void onReceive(Context context, Intent intent) {

     }
}

Tip:可用FileObserver監聽進度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章