Android 使用Rxjava和OkHttp3封装文件下载器

本文介绍了如何利用Rxjava和OkHttp3来封装一个Android文件下载器。通过创建一个发射DownloadTask的ObservableOnSubscribe,使用OkHttp在下载过程中发送进度更新,完成时发送onComplete,错误时发送onError。借助subscribeOn和observeOn进行线程切换,并使用DownLoadObserver进行回调。
摘要由CSDN通过智能技术生成

最近在学Rxjava,觉得这真是个神器,作为一个有轻微强迫症的程序员,自从用了Rxjava后,代码感觉清爽多了,再也不用为切换线程而使得代码臃肿难看发愁了。

整体思路是这样的:构建一个发射DownloadTask的发射器

ObservableOnSubscribe<DownloadTask>,使用OkHttpClien在subscribe(ObservableEmitter<DownloadTask> e)方法中下载文件,在下载过程中发射onNext事件更新下载进度,成功后发射onComplete,错误则发射onError通知,使用subscribeOn和observeOn切换线程,并传入一个DownLoadObserver进行回调。

Demo链接:https://github.com/RegonAngel/DownloadManagerDemo

首先是DownloadTask类:DownloadTask.java

public class DownloadTask {
    /*文件url*/
    private String url;
    /*文件名*/
    private String filename;
    /*目录*/
    private String directory;
    /*下载进度*/
    private int progress;


    DownloadTask(String url){
        this.url = url;
    }
    DownloadTask(String url, String directory){
        this.url = url;
        this.directory = directory;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getFilename() {
        return filename;
    }

    public void setFilename(String filename) {
        this.filename = filename;
    }

    public String getDirectory() {
        return directory;
    }

    public void setDirectory(String directory) {
        this.di
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值