DownloadManager--Android自带的下载工具

前言

DownloadManager是Android2.3(API 9)提供的下载操作,其“处理Http/Https连接并监控连接中的状态变化及系统重启来确保每一个下载任务顺利完成”[1]。DownLoadManager对于后台下载、下载回调、失败重试、断点续传、文件操作等方面都有很好的支持,同时使用简便,对于开发者,在大多数的使用环境中,它都是一个很好的选择。

使用

DownloadManager有两个子类,Request和Query。

  • Request类可以设置下载属性,诸如下载地址、文件类型等。
  • Query类可以用来查询下载的相关信息,包括下载进度、下载文件地址等。

1.权限配置

DownloadManager的使用需要配置权限为

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2.下载方法

DownloadManager mDownloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);//获取下载管理器服务的实例
DownloadManager.Request mRequest = new DownloadManager.Request(Uri.parse(url));//创建下载请求并传入下载地址
Long downID = mDownloadManager.enqueue(mRequest);//将下载请求加入下载队列, 返回一个下载ID

3.封装下载请求Request

 mRequest.setDestinationInExternalPublicDir("/zhang_download/", url.substring(url.lastIndexOf("/")))// 指定下载路径
                .setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE) // 指定可以在移动网络下下载
                .setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI) // 可以再wifi下下载
                .setMimeType(mimeType) // 设定下载类型为apk
//                .addRequestHeader("header", "value") //网络连接的http头
                .setTitle("downloadManager下载...") // notification标题
                .setDescription("<文件描述>") // notification标题描述
                .setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); // notification可见方式
3.1 设置文件下载位置
        // 将文件保存在应用所在文件夹下的Download文件夹下,下载的文件会随着应用的卸载而删除
        mRequest.setDestinationInExternalFilesDir(context, Environment.DIRECTORY_DOWNLOADS, "file.apk");
        // 将文件保存在SD卡"zhang_download"文件夹下,这
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值