Android中使用DownloadManager类来管理数据下载的教程

2019-12-10 18:07:49丽君
易采站长站为您分析Android中使用DownloadManager类来管理数据下载的教程,针对HTTP下文件的下载与保存地址指定等基础操作作出了详细讲解,需要的朋友可以参考下  

从Android 2.3(API level 9)开始Android用系统服务(Service)的方式提供了Download Manager来优化处理长时间的下载操作。Download Manager处理HTTP连接并监控连接中的状态变化以及系统重启来确保每一个下载任务顺利完成。
在大多数涉及到下载的情况中使用Download Manager都是不错的选择,特别是当用户切换不同的应用以后下载需要在后台继续进行,以及当下载任务顺利完成非常重要的情况(DownloadManager对于断点续传功能支持很好)。

要想使用Download Manager,使用getSystemService方法请求系统的DOWNLOAD_SERVICE服务,代码片段如下:

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

下载文件
要请求一个下载操作,需要创建一个DownloadManager.Request对象,将要请求下载的文件的Uri传递给Download Manager的enqueue方法,代码片段如下所示:

String serviceString = Context.DOWNLOAD_SERVICE; 
DownloadManager downloadManager; 
downloadManager = (DownloadManager)getSystemService(serviceString); 
 
Uri uri = Uri.parse("http://www.easck.com/shareables/icon_templates-v4.0.zip"); 
DownloadManager.Request request = new Request(uri); 
long reference = downloadManager.enqueue(request); 

在这里返回的reference变量是系统为当前的下载请求分配的一个唯一的ID,我们可以通过这个ID重新获得这个下载任务,进行一些自己想要进行的操作或者查询
下载的状态以及取消下载等等。
我们可以通过addRequestHeader方法为DownloadManager.Request对象request添加HTTP头,也可以通过setMimeType方法重写从服务器返回的mime type。