说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

DownloadManager下载管理类2.3新增API介绍

HTML文档下载 WORD文档下载 PDF文档下载
DownloadManager下载管理类2.3新增API介绍

作者:Android开发网


  从Android 2.3开始新增了一个下载管理类,在SDK的文档中我们查找android.app.DownloadManager可以看到。下载管理类可以长期处理多个HTTP下载任务,客户端只需要给出请求的Uri和存放目标文件的位置即可,下载管理使用了一个AIDL服务器所以可以放心的在后台执行,同时实例化的方法需要使用getSystemService(Context.DOWNLOAD_SERVICE) ,Android123再次提醒使用API Level为9的用户可以轻松的通过新增的这个API实现Android平台上的文件下载操作。

 DownloadManager类提供了以下几种方法来处理,

  long  enqueue(DownloadManager.Request request)   //存入队列一个新的下载项

 ParcelFileDescriptor  openDownloadedFile(long id)  //打开一个下载后的文件用于读取,参数中的long型id是一个provider中的一条记录。

Cursor  query(DownloadManager.Query query)  //查询一个下载,返回一个Cursor

int  remove(long... ids)  //取消下载同时移除这些条从下载管理中。

  我们可以看到提供的方法都比较简单,给我们操作的最终封装成为一个provider数据库的方式进行添加、查询和移除,但是对于查询和添加任务的细节,我们要看看DownloadManager.Request类和DownloadManager.Query 类了。

  一、DownloadManager.Request类的成员和定义

DownloadManager.Request  addRequestHeader(String header, String value)  // 添加一个Http请求报头,对于这两个参数,Android开发网给大家举个小例子,比如说User-Agent值可以为Android123或Windows XP等等了,主要是给服务器提供标识。
DownloadManager.Request  setAllowedNetworkTypes(int flags)  //设置允许使用的网络类型,这一步Android 2.3做的很好,目前有两种定义分别为NETWORK_MOBILE和NETWORK_WIFI我们可以选择使用移动网络或Wifi方式来下载。
DownloadManager.Request  setAllowedOverRoaming(boolean allowed)  //对于下载,考虑到流量费用,这里是否允许使用漫游。
DownloadManager.Request  setDescription(CharSequence description)  //设置一个描述信息,主要是最终显示的notification提示,可以随便写个自己区别
DownloadManager.Request  setDestinationInExternalFilesDir(Context context, String dirType, String subPath)  //设置目标存储在外部目录,一般位置可以用 getExternalFilesDir()方法获取。
DownloadManager.Request  setDestinationInExternalPublicDir(String dirType, String subPath)  //设置外部存储的公共目录,一般通过getExternalStoragePublicDirectory()方法获取。
DownloadManager.Request  setDestinationUri(Uri uri)  //设置需要下载目标的Uri,可以是http、ftp等等了。
DownloadManager.Request  setMimeType(String mimeType)  //设置mime类型,这里看服务器配置,一般国家化的都为utf-8编码。
DownloadManager.Request  setShowRunningNotification(boolean show)  //是否显示下载进度的提示
DownloadManager.Request  setTitle(CharSequence title)  //设置notification的标题
DownloadManager.Request  setVisibleInDownloadsUi(boolean isVisible)  //设置下载管理类在处理过程中的界面是否显示

  当然了Google还提供了一个简单的方法来实例化本类,这个构造方法为DownloadManager.Request(Uri uri) ,我们直接填写一个Uri即可,上面的设置使用默认情况。

 二、DownloadManager.Query类

  对于当前下载内容的状态,我们可以使用DownloadManager.Query类来获取,本类比较简单,仅仅提供了两个方法。

  DownloadManager.Query  setFilterById(long... ids)  //根据id来过滤查找。
  DownloadManager.Query  setFilterByStatus(int flags) //根据任务的状态来查找。

  详细的状态在android.app.DownloadManager类中有定义,目前Android 2.3中的定义为:

int STATUS_FAILED 失败
int STATUS_PAUSED 暂停
int STATUS_PENDING 等待将开始
int STATUS_RUNNING 正在处理中
int STATUS_SUCCESSFUL 已经下载成功

 最后Android开发网提醒大家要说的是因为DownloadManager类提供的query方法返回一个Cursor对象,这些状态保存在这个游标的COLUMN_STATUS 字段中。

  1. 下载的状态完成均是以广播的形式通知大家,目前API Level为9定义了下面三种Intent的action

  ACTION_DOWNLOAD_COMPLETE下载完成的动作。
  ACTION_NOTIFICATION_CLICKED 当用户单击notification中下载管理的某项时触发。
  ACTION_VIEW_DOWNLOADS 查看下载项

  2. 对于一个尚未完成的项,在Cursor中我们查找COLUMN_REASON字段,可能有以下定义:

int ERROR_CANNOT_RESUME 不能够继续,由于一些其他原因。
int ERROR_DEVICE_NOT_FOUND 外部存储设备没有找到,比如SD卡没有插入。
int ERROR_FILE_ALREADY_EXISTS 要下载的文件已经存在了,Android123提示下载管理类是不会覆盖已经存在的文件,所以如果需要重新下载,请先删除以前的文件。

int ERROR_FILE_ERROR 可能由于SD卡原因导致了文件错误。
int ERROR_HTTP_DATA_ERROR 在Http传输过程中出现了问题。
int ERROR_INSUFFICIENT_SPACE 由于SD卡空间不足造成的 

int ERROR_TOO_MANY_REDIRECTS 这个Http有太多的重定向,导致无法正常下载
int ERROR_UNHANDLED_HTTP_CODE 无法获取http出错的原因,比如说远程服务器没有响应。
int ERROR_UNKNOWN 未知的错误类型.

 3. 有关暂停的一些状态,同样COLUMN_REASON字段的值可能是以下定义

int PAUSED_QUEUED_FOR_WIFI 由于移动网络数据问题,等待WiFi连接能用后再重新进入下载队列。
int PAUSED_UNKNOWN 未知原因导致了任务下载的暂停.
int PAUSED_WAITING_FOR_NETWORK 可能由于没有网络连接而无法下载,等待有可用的网络连接恢复。.
int PAUSED_WAITING_TO_RETRY 由于重重原因导致下载暂停,等待重试。

  有关Android 2.3中新增的下载管理DownloadManager的介绍基本上已经完全讲完,如果你对Cursor、Provider这些基础概念了解的话,可以看到这个下载管理类可以帮我们减少很多不必要的代码编写。

游戏平台上:Win7已跌破70% Ubuntu突破1% 不再那么传奇 扎克伯格时代或结束 微软应该联手Firefox OS,打造破坏性生态系统 中美IT人才俱乐部第一期:硅谷经验面面观 中国第四季度Android和iOS智能手机出货量高达98% 开发者眼中的代码审查“真相” 互联网产品设计的12个理念 Pair、Between、小恩爱:妹纸装个情侣应用吧? 横跨四大操作系统:3DMark将挑战所有智能设备 美国碰壁欧洲得意 华为获CERN青睐 应用数据分析新标准:Flurry增应用崩溃分析功能 Twitter被黑客入侵,25万用户信息可能被窃 16亿美元超级计算机项目助力解读人脑 卡巴斯基发现新型Android恶意软件 可入侵Windows 谷歌发布基于B-Tree的C++模板库 开源产品系列:高性能Web框架Zend Framework LiFi是否会取代WiFi? 1月浏览器排行:IE10突破1% Chrome连续3月下滑 Wine让Android也能运行Windows软件 Cory Ondrejka,是这位工程师拯救了Facebook! 三星争夺企业市场的三大痛点与对策 Xcode更新至4.6 支持iOS 6.1 工程师揭秘:NVIDIA如何锻造Android掌机 VMware掌控Puppet 老用户会被锁定吗? 试图领导创新:三星创新中心11亿美元建基金 基于WebRTC Chrome与Firefox实现视频通话 将OpenStack私有云部署到Hadoop MapReduce环境 Web设计师必备的10款最佳排版工具 诺基亚CEO谈平板计划 Android为候选系统 244亿美元!戴尔公司正式完成私有化 对抗苹果 Facebook或推Find My Friends应用 在线等待:在DELPHI中调用windows api 的 SetFocus(),应怎样调用? 关于指针问题 有点搞不懂了!! switch的简单问题 在哪里添加全局函数 两个asp.net问题,请高手一定解答! 关于Treeview的几个问题? 怎样才能实现按返回按钮以后,自动刷新刚刚提交的页面!代码如下,请帮我改改! HELP!!! 请问VB关闭WINDOWS下面的所有窗口的命令是什么?谢谢 数据移植问题,多帮忙呀! 问来问去,也没问出个所以然来。干脆再简化一下问题吧。 如何制做帮助文件? 一个XML绑定数据集的问题? 多层数据库一问!!!!!!!!!!!!!!!!!!!!!!!!!! 关于winvnc(在线等待) 请问“数据结构”这门课主要是学什么的? 这个毛病是什么原因?(加急,肯请赐教) 在线等候?自定义控件问题? 请问知道进程的ID值和句柄,能否控制程序窗口的大小? 多层数据库疑问!!!!!!!!!!!!!!!!!!!!!!!!!!! 关于IBM AS/400 DB2数据库编程 怎么从_streamptr 中恢复 recordset? 与数据库建立联接的后续问题 早上偶然看见前女友从眼前走过,突然有种莫名的感动 歌词和音乐同步问题?winnap的歌词插件基于什么样的原理做出来? 一个菜鸟的苦恼!! 用命令行配置IIS的命令是什么? 看看这个程序到底错在哪? 查找点对象问题,各位进来帮我看看 各位朋友一定请帮忙,关系到我工作问题(不是很难) 用ASP和Javascritp或Vbscript配合将SQL Server里的数据在客户端转换成EXCEL文件 Application的问题,急 谁能告诉我《银色幻想》在哪里有得下,万分感谢!!给分多多 新開一貼,sql語句請教,急,給分!!! 局域网内指定IP出现“该静态IP地址已经使用”,原理如何,如何编程实现。 一个语句的写法,up者有分 关于数据汇总的精典SQL语句求教! 有奖捉疵 50分 怎么打*****号部分的代码总不执行啊? 请问如何列举当前打印机支持的纸张信息? 歌词和音乐同步问题?winnap的歌词插件基于什么样的原理做出来? 急救!!!关于对话框中编辑框重画问题 小问题。。。。只想知道为什么。。。。 转载(贫富悬殊的中国) !!!用ASP能否实现一次上传一整个目录下所有的文件(子目录不算)?高手请答复! TreeView专题讨论 j2me中请问如果将textField中的内容写入到moto388手机的记事本中? 在vc中调用其他的exe include 另外一个jsp文件时,能向那个文件传参数吗?不能的话,有其他办法吗?谢谢 系统不能识别DaysBetween,如何处理 请问如下通过web连续下载图片,只是第一张要提示,以后每张就不再提示了? SPSS中建立ARIMA模型后如何得到残差?已用SPSS建立ARIMA模型,但是建模后需检验残差项是否为白噪声序列.建模的输出结果中没有残差(residuals),怎么办?先谢过.不好意思我没有财富值啊,请大家帮 有关SPSS中ARIMA模型的输出解读输出结果如图所示,请问模型的参数估计结果是什么,就是把模型帮我写出来, 梵高的星空介绍解说或赏析《星空》 傅里叶变换和拉布拉斯变换有什么关系 WHO来说说含参不等式的解法啊.当参数a在2次项系数前的时候~怎么讨论~当参数a不在2次项系数前的时候~怎么讨论~.最后一问`为什么有的时候讨论△有的时候讨论参数捏~我不要其他地方转的,那 中国近代国学大师有哪些 =SUMIF($C$5:C5,C5,$E$5)-SUMIF(A!C:C,C5,A!E:E)-SUMIF(B!C:C,C5,B!E:E)语句是什么意思,具体 含参不等式与参变量关系ax^2+ax+1>0,求a的取值范围没说恒等,这才是我发愁的问题 为什么梵高和几米都画过《星空》啊?有区别吗我想买电影《星空》的同款拼图 可是发现梵高和几米的都有肿么回事哈 质量为3千克的空木箱放置在水平地面上,沿水平方向施加拉力,当拉力F1=8N时,木箱静止;当拉力F1=8N时,木箱静止;当拉力F2=10.3N时,木箱做匀速运动.求:1、木箱与地面间的动摩擦因素2、木箱在8 含参数的不等式1.a(x-1)/(x-2)>2(a≤1)2.x^2-(a^2+a)x+a^3<0 中国著名的国学大师简介 高一物理,算是摩擦力的问题吧.做下面的实验并利用学过的物理知识作一解释.两手伸直手心相对放在胸前(拇指朝上),将一把尺子(一木棒、一支长铅笔均可,且不论粗细是否均匀)放在伸 含参不等式..解关于x的不等式,ax+b>cx+d 变量与常量之间有关系吗?注意不是自变量与因变量 摩擦力 的一个疑问水平面上放一个B木块,上面放一个A木块,用绳子拉动B木块(1)匀速运动,A和B保持相对静止,那么它们之间有没有静摩擦力?(2)加速运动,A和B保持相对静止,那么它们之间有 二次项系数含参不等式讨论比如ax^2-(a+1)x+1<0讨论的是a>1 零一之间什么的.那怎么知道是以一为界限分段讨论的?而不是讨论大于2 大于3怎么求这个一? 赏析梵高的《星空》赏析这幅图……要大概200字左右……http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=%E8%F3%B8%DF+%D0%C7%BF%D5&in=14546&cl=2&cm=1&sc=0&lm=-1&pn=5&rn=1&di=663445721&ln=522 怎样求出圆柱的体积?横截面直径为2厘米的一根钢柱,横截成两段后,表面积和为75.36平方厘米.这根钢柱原来的体积是多少立方厘米? 求这三个图形的周长和面积? 中国国学大师是谁?我想知道中国国学大师是谁? 圆柱的体积是怎么样算出来的?在就是体积=容积吗?能一样给个公式吗? 关于水井,什么叫“取水深度”静水位 到 井底的距离么?那么取水层厚度呢?就是滤水管的长度? 第三次科技革命给人们带来哪些深刻影响? =SUMIF(表1!B3:B1000,B3,表1!F3:F1000) 在单元格中设置以上公式下拉后我想变成=SUMIF(表1!B3:B1000,B4,表1!F3:F1000)在下拉变成=SUMIF(表1!B3:B1000,B5,表1!F3:F1000)也就是说固定区域B3:B1000只改变条件B5 cosx的4次方 和5次方的不定积分是好多 好像有个公式样 顺便说说sin的单和双次方的不定积分 有什么规律不 大概是这个样子的cosx^4=3/4*1/2*PAI/2 梵高《星空》的英文介绍200词左右 如何使用SUMIF函数将一个表中的价格引用到另外一个表中呢 一瓶葡萄糖等于多少水?就是医院里挂水的那种. 请问“国学”的具体定义和主要内容都是什么吗?中国的国学大师都有谁呢? 我想问一下这是什么东西? 地下探矿用的金属探测仪,探测深度10米左右的,大概多少钱?推荐一下 水平地面上的物体在水平方向受到一拉力和地面对他的摩擦力的作用.在物体处于加速状态的条件下.说法对的A,当F增大时,f也随之增大 B当F 增大时,f保持不变 c F与f 是一对作用力与反作用力 D AB两个雨滴 阻力F=ksv^2 S是横截面积 A的横截面积大 也就是质量A的大问下落过程中哪个速度大 这是选择题图像题 没有选项是相等的是关于牛顿第二定律的 我想问一下这是什么语 如何测量汽车玻璃尺寸 女朋友爱流水,怎么办?我女朋友特别爱流水,亲一会都能流很多,抱抱摸摸就更别说了,每次做爱前的前戏没3分钟她内裤都能湿很多很多,她才17岁阿,是不是有什么问题? 还是天生的.用去医院看看 请问EXCEL怎么用=SUMIF的公式,算出参数C和D 的总数是多少. A B 为竖列 A 3 B 1 C 2 D 2 C 5 D 8单个参数我知道, 比如要算出一共C有多少, 可以用=SUMIF(A:A,"C",B:B)但是我想知道怎么算C和D一起共有多少. 怎 “薄纱”的“薄”应该读“bao”还是“bo”?请给我有权威, 我抽了一个签,是:虎恋高山别有机,众人目下尚狐疑.雁来嘹唳黄花发,此际声名达帝畿. 两个固定的等量同种电荷,在它们连线的垂直平分线上有a、b、c三点,a点在连线中点,b点在a点上面,c点上面,比较a b c三点的电场大小 亚显微结构是什么?那些细胞器是? 算出这个图形的周长. 对一组数据用matlab做傅立叶变换,我这里有一组数据,左边的是原函数x轴上的,右边的y轴上的.现在要对这组数据做傅立叶变换,并输出图像.大家看看用matlab怎么办呢?85\x052106.65355285.1\x05781.83087758 薄.简单说明什么时候读bo,什么时候读bao 做完爱为什么流水,流水的意思是什么啊 求阴影面积, 已知Sn是数列{an}的前n项和,点(n,Sn/n)(n∈N*)均在函数y=3x-2的图像上.求{an}的通项公式用S(n+1)减Sn怎么算,我总是算到a1=1和an=6n+1 算出这两个图形的周长. excel表格公式的问题:=SUMIF($D$2:$AS$2,"销量",D3:AS3)和=SUMIF($D$2:$AS$2,"销量",D3:BE3)对于上面这两个公式,为什么我用第二个公式计算的时候到了AS列以后的数值累加不了!只能累加AS列之前的数值啊? 剥字什么时候读bao?什么时候读bo? 为什么做完爱会流水 SUMIF(A$28:A94,A94,D$28: 跪求sin(t+30度)的拉普拉斯变换 与流水有关的诗句 SPSS时间序列模型ARIMA,专家建模为什么输出的预测结果全部一样为什么我后面输出的预测结果全部是一样的,用的时间定义是 1分钟. 求sin t 的绝对值的拉普拉斯变换RT~~ 其中ARIMA(p,d.q)中,分别如何确定呢? 利用SPSS做arima拟合,如何根据最后得到的各种参数还原出公式.比如parameter estimates里的AR1 MA1 constant对应着公式里哪些参数? 薄什么时候读bo什么时候读bao急 杭二中女生林心悦全国中学生物理竞赛第周日较强冷空气杀到彻底把杭州带入深秋浙医二院对抗菌药物管理动真格 有医生猪木在朝开设事务所 称愿为日朝关系做缅甸传奇双胞胎重聚 八岁即建“上帝军世界银行和联合国报告曝光索马里海盗产斯诺登发公开信谴责美英 吁全球性解决芬兰外交部长期遭入侵 媒体乱猜中俄黑韩国整形“名医” 在京多为游医【图】首度受审 穆尔西大闹法庭韩考场现高智能作弊 超小耳麦直径仅2缅甸传奇双胞胎重聚 八岁即建“上帝军西班牙警方出动便衣查黑工 一华人工厂土耳其与北约和美国在地中海举行军演德国破旧公寓发现纳粹藏品 名画估价1列支敦士登王室珍藏亮相国博朴槿惠:日本就历史问题道歉前不与安倍美国中东政策走到十字路口美国称其只在以巴和谈中发挥推动作用“不稳定之弧”挑战全球反恐肯尼亚法官判轮奸犯割草赎罪 超百万人奥巴马:中国搭30年便车 没人指望他“签字生财”为何能行其道”背后的金融杉杉来谝:国外的肉夹馍竟然是这样加拿大当代艺术群展在西安开幕深圳开展“清雷行动”查处食品无证经营日美外长会谈:对伊极端组织实施有针对王毅会见文莱外交与贸易部长穆罕默德亲台风“夏浪”袭击日本 已致1死16伤十三运会跆拳道开赛喀什学生参加“寻访党的足迹 感恩之旅广东队首战加赛快棋惜败三更半夜,电话来了一个又一个台“经济部长”张家祝辞职心意已决 盼穗企业工商登记下周起可网上预约 4个荡气回肠五五波叩寂寞而求音这次我演的 不是“唐宛如”帮别人“败家”月入超10万没有按键的键盘 隔空打字不是梦东风日产三大中心正式奠基你的世界主要靠说?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘