android 下载管理器

android  自带了下载管理器,我们可以获取到下载的进度大小以及下载完成等等的状态,但是android自带的DownLoadManager却没有实现比如暂停,继续等功能也就是不能断点续传,这几天在总下载管理器,写了以后总是 感觉还是不是太好,因为下载要考虑的情况是比较多的

1、我们要考虑下载的时候要有下载情况的回调,

2、下载的文件是否已经下载

3、是否已经下载完成

4、下载速度

5、下载的进度

6、下载的过程中暂停,继续,取消等操作

7、可能有些人还要把下载的列表分为a 已经下载完成  b 正在下载

8、还有要加下载完成的通知,或是提示

9、还有listView经常遇到的进度条显示错乱

等等。。。。上网查找了很多的资料,网上有现成的第三方DownloadProvider这个,功能相当的齐全,但是我还是希望自己能写一个

下边是我自己的实现思路

首先 1 、要有一个service   来进行后台下载

2、需要有一个存放下载信息的一个实体类downLoadInfo  包含下载的文件大小,每次下载的大小,下载的速度等

private long id;

@Transient

private HttpHandler<File> handler;

private HttpHandler.State state

private String downloadUrl;

private String fileName;

private String fileSavePath;

private long progress;

private long fileLength;

private boolean autoResume;

private boolean autoRename;

private float speed;

3、一个下载管理器;进行下载的管理,已经下载进度的回调

下载我使用的是第三方的xutils

4 、一个DownLoadAdapter用来给listView填充数据

整体来讲就是这么多。

如果有需要代码的留言吧

时间: 2024-10-12 20:13:53

android 下载管理器的相关文章

一个简单Android下载管理器的实现(支持断点续传)

近期工作不是很忙,时间比较多,所以在空闲时间准备自己编写一个简单的Android下载管理器.该管理器实现如下功能: 1.能够支持正常的下载,暂停,继续,安装操作. 2.支持断点续传,实现暂停继续功能,在推出应用后,再次进入应用依然能正常将文件下载完成. 3.实现实时状态回调,下载进度,速度,一目了然. 以上是UML设计图,这个简单下载器的实现,有几个技术难点,攻克它们问题就迎刃而解. 1.如何实现断点续传:这个问题其实不难,网上也有很多相关资料,基本原理都相同,就是记录下载任务上一次中断的位置,

Android 实现简易下载管理器 (暂停、断点续传、多线程下载)

什么都先别说,先看预览图! 预览图中是限制了同时最大下载数为 2 的. 其实下载管理器的实现是挺简单的,我们需要弄清楚几点就行了 1.所有任务的Bean应该存在哪里,用什么存? 2.如何判断任务是否已存在? 3.如何判断任务是新的任务或是从等待中恢复的任务? 4.应该如何把下载列表传递给Adapter? 5.如何将下载的进度传递出去? 6.如何有效率地刷新显示的列表? (ListView 或 RecycleView) 服务基础 首先我们需要明确一点,下载我们应该使用服务来进行,这样我们才能进行后

android 之 下载管理器 在任何地方监听进度设计思路

大家想必,做应用市场,或者其他下载,都想在任何地方都监听进度,并且很好的实现. 在这里分享一个比较简单,并且防止内存溢出等情况.我们使用的弱引用来进行绑定View进行更新进度方法. Map<String, WeakReference<View>> viewListem = new HashMap<String, WeakReference<View>>();// 对进度条进行弱引用 防止内存不够的时候进行回收. key为下载地址 value 进度条 //添加

Android 多线程下载,断点续传,线程池

你可以在这里看到这个demo的源码: https://github.com/onlynight/MultiThreadDownloader 效果图 这张效果图是同时开启三个下载任务,限制下载线程数量的效果图. 多线程下载原理 多线程下载的原理就是将下载任务分割成一个个小片段再将每个小片段分配给各个线程进行下载. 例如一个文件大小为100M,我们决定使用4个线程下载,那么每个线程下载的大小即为25M,每个线程的起始以及结束位置依次如下: 0: 0-25M 1: 25-50M 2: 50-75M 3

Android之——多线程下载示例(一)

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46883927 一.概述 说到Android中的文件下载,Android API中明确要求将耗时的操作放到一个子线程中执行,文件的下载无疑是需要耗费时间的,所以要将文件的下载放到子线程中执行.下面,我们一起来实现一个Android中利用多线程下载文件的小例子. 二.服务端准备 在这个小例子中我以下载有道词典为例,在网上下载有道词典的安装包,在eclipse中新建项目web,将下载的

Android应用程序用真机调试步骤

仅供参考: 1.开启调试模式 2.安装 Adb.exe 将platform-tools文件夹里面adb.exe AdbWinApi.dll AdbWinUsbApi.dll拷贝到tools 在tools 文件目录下执行安装命令:adb install 3.查看设备是否安装,用adb devices命令 C:\Windows\system32>adb devices List of devices attached 000e91eb75d68f  device device标识链接手机成功. *前

android 单线程多任务断点排队下载(支持多界面刷新)

最近在做一个单线程多任务的断点排队下载的功能,网上确实有很多这样的demo.但是呢我发现大部分网上的demo都是很些不完整的要么就是有缺陷的,可能是我还没找到.今天我给大家带来的一个功能完整的并且可以多界面刷新,就比如:我当前界面点了下载放后台下载了,退出了当前界面在进来网上很多这样demo都没做继续更新界面.并且还做了排队. 首先我们先制定下计划: 1.我们做的是断点下载,断点下载肯定是需要记录当前下载的进度和文件总大小的.这个当然是放在数据库里面最好,当然肯定会是异步来操作数据库,这里我们就

Android之——断点下载示例

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46897641 在上一篇博文<Android之--多线程下载示例>中,我们讲解了如何实现Android的多线程下载功能,通过将整个文件分成多个数据块,开启多个线程,让每个线程分别下载一个相应的数据块来实现多线程下载的功能.多线程下载中,可以将下载这个耗时的操作放在子线程中执行,即不阻塞主线程,又符合Android开发的设计规范. 但是当下载的过程当中突然出现手机卡死,或者网络中断

android中adb命令大全

adb 常用命令大全 1. 显示系统中全部Android平台:   android list targets 2. 显示系统中全部AVD(模拟器):   android list avd 3. 创建AVD(模拟器):  android create avd --name 名称 --target 平台编号 4. 启动模拟器:   emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800) 5. 删除AVD(模拟器): android delete avd