android 中downloadmanager学习

        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);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值