DownloadManager
Introduce
- 基于OkHttp实现的下载管理,支持多线程、断点续传等功能,Demo演示用的是RecyclerView,在Application里可设置任务并发等。
- 实现时基本无别的臃肿代码,可以方便修改使用。
Demo
Screenshot
Use
Gradle
compile 'com.yuan.library.dmanager:downloadmanager-okhttp-release:1.1.8'
Maven
<dependency>
<groupId>com.yuan.library.dmanager</groupId>
<artifactId>downloadmanager-okhttp-release</artifactId>
<version>1.1.8</version>
<type>pom</type>
</dependency>
Code
// 在Application初始化
DownloadManager.getInstance().init(this, 3);
// 代码中使用
String taskId = String.valueOf(mListData.get(holder.getAdapterPosition()).getUrl().hashCode());
DownloadTask itemTask = mDownloadManager.getTask(taskId);
DownloadManager.getInstance().add(itemTask);
//下载管理具体使用,也需要对列表的adapter进行处理,具体实现请参考demo。
Update
v1.1.8
- 修复下载地址无效或者地址为空引起的crash。
v1.1.7
- 修复新下载任务在连接中状态时,点击按钮crash的bug。
- 添加ConnectException捕获。
- 更新演示demo。
v1.1.6
- 修改数据库的存储为GreenDao框架。
v1.1.5
- 修复暂停后没有更新数据库状态。
v1.1.4
- 最低兼容版本到14(Android4.0)
v1.1.3
- 修复有任务正在下载时,取消任务有时候不能中断下载的BUG。在demo中长按某个条目,可取消一个任务。
v1.1.2:
- 修复多个任务同时等待,暂停某个任务时,等待队列出现错误。
- 修复Demo按返回键退出程序,再次进入程序,任务还在下载时,UI不刷新问题(以后版本更新,会将下载统一下放到service中)。
- 优化线程池的处理。
v1.1.1:
- 添加超时异常的捕获。
- 可以自定义OkHttpClient,通过DownloadManager.getInstance().init(this, 3,HttpClient)添加。
- 如果不设置最多下载数量,那么下载数量将根据CPU核数量来分配,并且最大线程数量限制在15个。
v1.1.0:
- 重构了下载管理,删除冗余代码,并添加任务失败的回调。
- 修复了已知bug。
Remark
由于demo中下载地址,是在本机上搭的服务器,所以点击下载按钮不能下载。如果demo中的下载测试,请在MainActivity的getMockData方法中换成可用的地址。
Contacts
mail:wenbing1007@163.com
qq:11026979