安卓开发入门之系统下载管理工具DownloadManager-第三部分(翻译)
2017-06-24 21:59
495 查看
原文链接
https://blog.stylingandroid.com/downloadmanager-part-3/
安卓开发入门之系统下载管理工具DownloadManager-第一部分
http://blog.csdn.net/zhangxiangliang2/article/details/73691449
安卓开发入门之系统下载管理工具DownloadManager-第二部分
http://blog.csdn.net/zhangxiangliang2/article/details/73693134
安卓开发入门之系统下载管理工具DownloadManager-第三部分
http://blog.csdn.net/zhangxiangliang2/article/details/73695167
前两篇文章介绍DownloadManager 的主要内容,另外还有一个重要的知识点就是其在设备上的UI表现。我们都知道下载时系统通知栏会显示下载信息,除此之外还有下载管理app,通过此app,用户能够管理下载的内容。该app的尤其重要,因为当我们的app将下载内容存放在我们自己的数据区域以外并且用户卸载掉我们的app后,这些下载内容不会被自动删除。如果我们使用DownloadManager下载文件,下载内容会自动显示在下载管理app。正如下图所示:
然而,当我们使用独立下载时,我们仍然能够通过DownloadManager的addCompletedDownload()方法将下载内容添加到下载管理app。该方法有两个参数,第一个参数从API12开始引入,第二个参数(API24引入)包含下载内容中URI属性和HTTP中URI。但是注意,要想此方法生效,我们必须将下载内容存储在public区域,而不能存储在app私有区域。
在第一篇文章《安卓开发入门之系统下载管理工具DownloadManager-第一部分 》中阐述了下载完成后,我们可以通过DownloadManager 获取下载内容的属性信息,比如说MIME type。当然还有许多其他的属性,比如下载状态和内容的大小。
第一篇文章也展示了通过getUriForDownloadedFile()方法获取URI,和MIME type一起调用外部的PDF阅读器。这让我们意识到,下载内容被存储在我们app的私有数据区域和拥有下载内容schema的URI,我们通过DownloadManager创建ContentProvider 将URI暴露给外部app。
将下载内容存储在合适的位置是个值得思考的问题。由于不同app有不同的实际需求,所以没有唯一的正确答案。
假如下载内容比较小,并且只被我们的app自己使用,存储在私有数据区域比较合适。
对于比较大的下载内容,并且只被我们的app自己使用,存储在存储卡的私有数据区域比较合适(此操作不需要WRITE_EXTERNAL_STORAGE 权限)。通过方法setDestinationInExternalFilesDir()。
最后如果下载内容需要具备public属性(比如说媒体扫描器扫描后将图片显示在系统相册),存储在存储卡的public区域比较合适(此操作需要WRITE_EXTERNAL_STORAGE 权限)。通过方法setDestinationInExternalPublicDir()。
源码下载
https://github.com/StylingAndroid/DownloadManager/tree/Part3
原文链接
https://blog.stylingandroid.com/downloadmanager-part-3/
安卓开发入门之系统下载管理工具DownloadManager-第一部分
http://blog.csdn.net/zhangxiangliang2/article/details/73691449
安卓开发入门之系统下载管理工具DownloadManager-第二部分
http://blog.csdn.net/zhangxiangliang2/article/details/73693134
安卓开发入门之系统下载管理工具DownloadManager-第三部分
http://blog.csdn.net/zhangxiangliang2/article/details/73695167
https://blog.stylingandroid.com/downloadmanager-part-3/
安卓开发入门之系统下载管理工具DownloadManager-第一部分
http://blog.csdn.net/zhangxiangliang2/article/details/73691449
安卓开发入门之系统下载管理工具DownloadManager-第二部分
http://blog.csdn.net/zhangxiangliang2/article/details/73693134
安卓开发入门之系统下载管理工具DownloadManager-第三部分
http://blog.csdn.net/zhangxiangliang2/article/details/73695167
前两篇文章介绍DownloadManager 的主要内容,另外还有一个重要的知识点就是其在设备上的UI表现。我们都知道下载时系统通知栏会显示下载信息,除此之外还有下载管理app,通过此app,用户能够管理下载的内容。该app的尤其重要,因为当我们的app将下载内容存放在我们自己的数据区域以外并且用户卸载掉我们的app后,这些下载内容不会被自动删除。如果我们使用DownloadManager下载文件,下载内容会自动显示在下载管理app。正如下图所示:
然而,当我们使用独立下载时,我们仍然能够通过DownloadManager的addCompletedDownload()方法将下载内容添加到下载管理app。该方法有两个参数,第一个参数从API12开始引入,第二个参数(API24引入)包含下载内容中URI属性和HTTP中URI。但是注意,要想此方法生效,我们必须将下载内容存储在public区域,而不能存储在app私有区域。
在第一篇文章《安卓开发入门之系统下载管理工具DownloadManager-第一部分 》中阐述了下载完成后,我们可以通过DownloadManager 获取下载内容的属性信息,比如说MIME type。当然还有许多其他的属性,比如下载状态和内容的大小。
第一篇文章也展示了通过getUriForDownloadedFile()方法获取URI,和MIME type一起调用外部的PDF阅读器。这让我们意识到,下载内容被存储在我们app的私有数据区域和拥有下载内容schema的URI,我们通过DownloadManager创建ContentProvider 将URI暴露给外部app。
将下载内容存储在合适的位置是个值得思考的问题。由于不同app有不同的实际需求,所以没有唯一的正确答案。
假如下载内容比较小,并且只被我们的app自己使用,存储在私有数据区域比较合适。
对于比较大的下载内容,并且只被我们的app自己使用,存储在存储卡的私有数据区域比较合适(此操作不需要WRITE_EXTERNAL_STORAGE 权限)。通过方法setDestinationInExternalFilesDir()。
最后如果下载内容需要具备public属性(比如说媒体扫描器扫描后将图片显示在系统相册),存储在存储卡的public区域比较合适(此操作需要WRITE_EXTERNAL_STORAGE 权限)。通过方法setDestinationInExternalPublicDir()。
源码下载
https://github.com/StylingAndroid/DownloadManager/tree/Part3
原文链接
https://blog.stylingandroid.com/downloadmanager-part-3/
安卓开发入门之系统下载管理工具DownloadManager-第一部分
http://blog.csdn.net/zhangxiangliang2/article/details/73691449
安卓开发入门之系统下载管理工具DownloadManager-第二部分
http://blog.csdn.net/zhangxiangliang2/article/details/73693134
安卓开发入门之系统下载管理工具DownloadManager-第三部分
http://blog.csdn.net/zhangxiangliang2/article/details/73695167
相关文章推荐
- 安卓开发入门之系统下载管理工具DownloadManager-第二部分(翻译)
- 安卓开发入门之系统下载管理工具DownloadManager-第一部分(翻译)
- linux学习入门 基础部分(9)[1.系统日志默认分类2.日志管理服务rsyslog3.日志分析工具journa4.时间同步5.timedatectl命令]
- lae界面开发工具入门之介绍十一--<安卓系统如何编译打包?>
- 安卓开发打开系统下载管理历史.
- BlackBerry手机Java开发开发工具下载/签名申请/入门中文教程
- 从架构设计到系统实施-基于.NET 3.0的全新企业应用之开发基于MMC 3.0的管理工具
- 安卓开发环境准备 - 安卓开发工具下载及安装
- 安卓开发工具下载
- java开发医疗信息管理系统源代码下载
- 不写代码开发信息管理系统-配置实现 下载地址:http://121.18.78.216
- Navicat ——下载次数最多的MySQL数据库管理和开发工具
- Android系统下载管理DownloadManager功能介绍及使用示例
- 使用 XForms 和 Ruby on Rails 开发小型门诊管理系统,第 1 部分: 安装配置 IBM DB2 9 pureXML
- 捷训网站信息管理系统(致青春:写给那些曾经的经典开发工具之Turbo C)
- 使用 XForms 和 Ruby on Rails 开发小型门诊管理系统,第 3 部分:实现护士和医生 XForm
- 20151208linux系统日常管理第三部分(linux下使用iptables实现内网的ftp端口映射 )扩展3
- 关于安卓开发工具翻译理解