android 中downloadmanager學習

jopen 8年前發布 | 7K 次閱讀 Android開發 移動開發

        android系統中包含了很多的系統管理類,比如:PowerManager,AudioManager等,而使用downloadmanager來下載文件是件很方便的事情。

下面是關鍵代碼:

DownloadManager manager = null;
private long mDownloadReference;//當前下載任務的引用,通過該引用可以操作下載任務
//獲取downloadmanager對象
manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
//創建監聽下載完成的廣播接收對象
DownloadCompleteReciver downloadeReciver = new DownloadCompleteReciver();
//注冊廣播監聽器
registerReceiver(downloadeReciver, filter);

下載文件的詳細代碼:
//指定要下載的文件
Uri uri = Uri.parse("http://10.0.2.2/test/data/get.mp3");
//創建下載任務對象
DownloadManager.Request request = new DownloadManager.Request(uri);
//設置下載標題
request.setTitle("下載文件");
//設置下載描述
request.setDescription("正在使用downloadmanager下載文件");
//指定下載到本地的目錄
request.setDestinationInExternalFilesDir(MainActivity.this,"down","hahaha.mp3");
//將下載任務加入到隊列中,并返回下載任務的而引用
mDownloadReference = manager.enqueue(request);
setTitle("正在下載");



/取消下載按鈕的單機事件
//取消mDownloadReference指向的下載任務
manager.remove(mDownloadReference);

//顯示下載歷史
Intent intent = new Intent();;
intent.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS);
//顯示下載歷史
startActivity(intent);



//查詢下載狀態
//查詢狀態所在的列索引
int columnIndex = cursor.getColumnIndex(manager.COLUMN_STATUS);
//獲取下載狀態的代碼
int status = cursor.getInt(columnIndex);
//下載原因所在的列的索引
int columnReason = cursor.getColumnIndex(manager.COLUMN_REASON);
//獲取下載原因的代碼
int reason = cursor.getInt(columnReason);
//獲取下載文件存儲在本地文件名所在列的索引
int filenameIndex = cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME);
//獲取下載文件存儲在本地的文件名
String filename = cursor.getString(filenameIndex);



來自: http://blog.csdn.net//mockingbirds/article/details/44837935

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!