Android快速实现文件下载(只有4行代码)

澳门新葡亰3522平台游戏 2

澳门新葡亰3522平台游戏,写在前面的废话

下载文件,几乎是所有APP都会用到的功能!算了,还是不废话了,直接开写吧。。。

  • 本文为 Marno 原创,转载必须保留出处!
  • 公众号,关注后回复 RN 加入交流群
  • React Native 优秀开源项目大全:

简单使用

完成一个下载任务只需要4行代码,什么断点续传,大文件下载,通知栏进度显示….都不需要你操心。

//创建下载任务,downloadUrl就是下载链接
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadUrl));
//指定下载路径和下载文件名
request.setDestinationInExternalPublicDir("/download/", fileName);
//获取下载管理器
DownloadManager downloadManager= (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
//将下载任务加入下载队列,否则不会进行下载
downloadManager.enqueue(request);
写在前面的废话

下载文件,几乎是所有APP都会用到的功能!算了,还是不废话了,直接开写吧。。。

高级用法

  • 通过上面的代码大家也看出来了,我们使用的是系统提供的下载管理器进行下载,从API
    9就开始支持了,所以不用担心在兼容问题
  • 既然是系统提供的,那么肯定还有更加强大的用法,文章继续

让我们看DownloadManager的源码,提供了这么多方法

澳门新葡亰3522平台游戏 1

DownloadManager的方法

澳门新葡亰3522平台游戏 2

DownloadManager.Request的方法

方法差不多就这些,已经比较全了,可以满足我们绝大部分的使用场景。

简单使用

完成一个下载任务只需要4行代码,什么断点续传,大文件下载,通知栏进度显示….都不需要你操心。

//创建下载任务,downloadUrl就是下载链接DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadUrl));//指定下载路径和下载文件名request.setDestinationInExternalPublicDir("/download/", fileName);//获取下载管理器DownloadManager downloadManager= (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);//将下载任务加入下载队列,否则不会进行下载downloadManager.enqueue;