Android Download Manager学习

Posted by wjch on 2016-02-24

一.Download Manager是做什么的:

Android2.3(API level9)引入了Download Manager,作为一个service来优化长时间下载操作的处理.

二.什么场景可以使用:

三.怎么使用:

1.获取:

DownloadManager downloadManager = Context.getSystemService(Context.DOWNLOAD_SERVICE);

2.下载一个文件:

1
2
3
4
5
Uri uri = Uri.parse("文件地址");
DownloadManager.Request request = new Request(uri);
long reference =downloadManager.enqueue(request);

根据返回的引用值,可以对下载进行进一步的操作或者查询,包括查看状态或者取消下载.
也可以进行设置:

可以调用addRequestHeader()和setMimeType()来给请求添加报文头或者重写服务器返回的MIIME类型.
可以个某个下载制定连接条件.setAllowedNetworkTypes()方法可以限制下载类型为WIFI或者移动网络如

request.setAllowedNetworkTypes(Request.NETWORK_WIFI)

调用enqueue后,一旦连接可用且DownloadManager空闲,就会开始下载.

下载完之后,如何通知:

需要注册一个Receiver来接收下载完成ACTION_DOWNLOAD_COMPLETE的通知,它将包含一个EXTRA_DOWNLOAD_ID extra,其中包含了已经完成下载的引用ID.