java155apk,RxDownload基于RxJava打造的下载工具, 支持多线程和断点续传

RxDownload

基于RxJava打造的下载工具, 支持多线程下载和断点续传, 智能判断是否支持断点续传等功能

标签(空格分隔): Android RxJava Download Tools基于RxJava打造的下载工具, 支持多线程和断点续传效果图

none.gif

demo.gif (487.33 KB, 下载次数: 43)

2016-11-7 21:46 上传大文件下载测试

none.gif

王者荣耀下载测试.gif (342.54 KB, 下载次数: 36)

2016-11-7 21:47 上传

none.gif

memory.png (50.87 KB, 下载次数: 35)

2016-11-7 21:47 上传大文件下载测试中,内存占用一直趋于平稳

下载方式:

1.便捷下载zip包:rar.gif

2016-11-7 21:50 上传

点击文件名下载附件

2.github地址回帖下载:游客,如果您要查看本帖隐藏内容请回复

3.免回复跳转github下载:zip.gif请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:RxDownload基于RxJava打造的下载工具, 支持多线程和断点续传

下载次数:0    查看状态:您未购买  售价:5 秀币 [充值秀币]

下载权限: 新手上路以上或 [VIP会员]   [购买VIP]   [会员等级]  [免费领秀币]主要功能:使用Retrofit+OKHTTP来进行网络请求

基于RxJava打造, 支持RxJava各种操作符链式调用

若服务器支持断点续传, 则使用多线程断点下载

若不支持断点续传,则进行传统下载

多线程下载, 可以设置最大线程, 默认值为3线程

网络连接失败自动重连, 可配置最大重试次数, 默认值为3次

利用Java NIO 中的 MappedByteBuffer内存映射进行高效读写文件

流式下载,再大的文件也不会造成内存泄漏

支持根据Last-Modified字段判断服务端文件是否变化

与服务器进行验证过程中,使用更轻便的HEAD请求方式仅获取响应头,减轻通信数据量

2016-11-7更新:修复自定义路径不能下载的bug下载流程图

none.gif

download.png (30.82 KB, 下载次数: 35)

2016-11-7 21:47 上传使用方式

1.添加Gradle依赖[Java] 纯文本查看 复制代码dependencies{

compile 'zlc.season:rxdownload:1.1.3'

}

2.代码调用[Java] 纯文本查看 复制代码Subscription subscription = RxDownload.getInstance()

.download(url, "weixin.apk", null)

.subscribeOn(Schedulers.io())

.observeOn(AndroidSchedulers.mainThread())

.subscribe(new Subscriber() {

@Override

public void onCompleted() {

}

@Override

public void onError(Throwable e) {

}

@Override

public void onNext(final DownloadStatus status) {

}

});

download(String url, String saveName, String savePath)参数说明:

参数分别为下载地址,保存文件名,保存地址.

url与saveName为必传参数, savePath为可选参数, 默认的下载地址为/storage/emulated/0/Download/目录下, 也就是内置存储的Download目录

3.参数配置

可以配置的参数如下:[Java] 纯文本查看 复制代码Subscription subscription = RxDownload.getInstance()

.maxThread(10) //设置最大线程

.maxRetryCount(10) //设置下载失败重试次数

.retrofit(myRetrofit)//若需要自己的retrofit客户端,可在这里指定

.defaultSavePath(defaultSavePath)//设置默认的下载路径

.download(url,savename,savepath) //开始下载

.subscribeOn(Schedulers.io())

.observeOn(AndroidSchedulers.mainThread())

.subscribe(new Subscriber() {

@Override

public void onCompleted() {

}

@Override

public void onError(Throwable e) {

}

@Override

public void onNext(DownloadStatus status) {

//Status表示的是当前的下载进度

}

});

4.DownloadStatus 下载状态[Java] 纯文本查看 复制代码class DownloadStatus {

private long totalSize;

private long downloadSize;

public boolean isChunked = false;

//...

//返回文件总大小,单位为byte

public long getTotalSize() {}

//返回已下载总大小,单位为byte

public long getDownloadSize() {}

//返回格式化的总大小,如:10MB

public String getFormatTotalSize() {}

//返回格式化的已经下载的大小,如:5KB

public String getFormatDownloadSize() {}

//返回格式化的状态字符串,如:2MB/36MB

public String getFormatStatusString() { }

//返回下载的百分比, 保留两位小数,如:5.25%

public String getPercent() {}

}

5.取消或暂停下载[Java] 纯文本查看 复制代码Subscription subscription = RxDownload.getInstance()

.download(url, null, null)

//...

//取消订阅, 即可暂停下载, 若服务端不支持断点续传,下一次下载会重新下载,反之会继续下载

if (subscription != null && !subscription.isUnsubscribed()) {

subscription.unsubscribe();

}

6.更多功能后续将会逐步完善

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值