Android开发工具类之DownloadManagerPro

昨天含含糊糊的讲了一下HttpUtils,又有人跟我反馈说,别管看得懂,要照顾到看不懂的,还是要求我写详细一些,我想也是,能看懂的可以不看,重点就是让人好好得到学习的,众口难调嘛,以后我写东西尽量都写的详细一些,适合更多小白用户看,才能更好,更能提高大家的能力。如果你能看懂,也不要跟我说没必要解释的什么的了,因为毕竟要让大家都弄明白。

言归正传,今天我们来详细的讲一下DownloadManagerPro这个工具类,说白了,这个工具类就是Android系统下载管理DownloadManager的一个增强类,提供了一些增强方法。或许大家不太了解这个安卓系统自带的DownloadManager这个类,我先做一个简单介绍吧。

DownloadManager是系统开放给第三方应用使用的类,包含两个静态内部类DownloadManager.Query和DownloadManager.Request。DownloadManager.Request用来请求一个下载,DownloadManager.Query用来查询下载信息。用downloadManager的enqueue接口进行下载,返回唯一的downloadId。注意这个id,我们会在DownloadManagerPro这个工具增强类中用到。正题来了,下面就介绍一下这个DownloadManagerPro。

DownloadManagerPro这个增强类中有一下这些方法,我会对这些方法进行一个逐一的解释,希望大家不要嫌啰嗦。

1、int[] getBytesAndStatus(long downloadId)

这个方法就是传入我们上面所说的那个enqueue接口返回的下载id,可以获取到这个下载文件已经下载了多大,总共多大,以及下载状态,返回信息是一个int数组,包含了这三个信息。

2、int[] getDownloadBytes(long downloadId)

这个方法就是传入下载id,可以获取到已经下载了多大,总共这个下载文件有多大的信息,返回信息也是一个int数组。

3、int getErrorCode(long downloadId)

这个方法是传入下载id,得到的返回信息就是这个文件下载失败的错误代码,error code。

4、String getFileName(long downloadId)

这个方法就是传入下载id,返回下载文件的名字

5、int getPausedReason(long downloadId)

这个方法是传入下载id,返回下载停止的原因

6、int getReason(long downloadId)

这个方法就是传入下载id,返回下载失败或者停止的错误代码

7、int getStatusById(long downloadId)

这个方法就是传入下载id,返回下载信息的状态码

8、String getUri(long downloadId)

这个方法就是传入下载id,返回下载文件的uri

9、static boolean isExistPauseAndResumeMethod()

这个方法就是判断在DownloadManager中是否存在停止下载的和重新下载的方法

10、int pauseDownload(long... ids)

这个方法就是传入多参数的id,停止响应下载id的下载

11、int resumeDownload(long... ids)

这个方法就是传入多参数的下载id,继续或者恢复停止的下载

原文发布于微信公众号 - 非著名程序员(non-famous-coder)

原文发表时间:2015-08-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python爬虫实战

Python爬虫利器:Requests库的使用

写了一些爬虫,从urllib库转到requests库,到目前为止,个人感觉requests库是最简单易用的HTTP库,以下这段话来自requests官网:

891
来自专栏java一日一条

Java EE7和Maven工程入门(4)

1.一个web maven模块(war) 2.一个支持无状态会话beans的ejb模块(EJB3.1) 3.支持实体beans的ejb模块(JPA2)

721
来自专栏mathor

第1章 必须掌握的Linux命令

 命令对象一般是指要处理的文件、目录、用户等资源,而命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀(示例请...

1211
来自专栏java一日一条

servlet/filter/listener/interceptor区别与联系

由于最近两个月工作比较清闲,个人也比较“上进”,利用工作空余时间,也继续学习了一下,某天突然想起struts2和struts1的区别的时 候,发现 为什么st...

772
来自专栏Hongten

Java Web Web应用,打包和web.xml文件

  Web应用就是包括了一系列Servlet,jsp,html等相关文件的集合,他需要

1481
来自专栏java 成神之路

top 命令详解

3146
来自专栏java一日一条

servlet/filter/listener/interceptor区别与联系

由于最近两个月工作比较清闲,个人也比较“上进”,利用工作空余时间,也继续学习了一下,某天突然想起struts2和struts1的区别的时 候,发现 为什么st...

562
来自专栏程序小工

【实战】Tp5+小程序(三)--微信登录与令牌

ThinkPHP5 从入门到深入学习,结合实战项目深入理解 ThinkPHP5 的特性和使用方法。深入学习 api 开发,学习微信登录和令牌的相关知识,并理解微...

2.1K3
来自专栏Flutter入门到实战

一行代码快速解耦Application逻辑,让Application更简洁好维护

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/23b9ba9b685d

843
来自专栏极客猴

详解 python3 urllib

本文是爬虫系列文章的第一篇,主要讲解 Python 3 中的 urllib 库的用法。urllib 是 Python 标准库中用于网络请求的库。该库有四个模块,...

1021

扫码关注云+社区

领取腾讯云代金券