Retrofit2+Rxjava2 封装 下载文件

作者: zhongjh | 来源:发表于2018-05-18 22:54 被阅读823次

demo下载:
https://github.com/zhongjhATC/Retrofit2Rxjava2Download

这是一个由retrofit2和rxjava2一起搭配的网络框架
1.有些demo是用event来传递的,但我认为能尽量不用event的场合最好能不用(也不是说event不好,至于为什么不用event的原因可以搜索相关文章),所以这个demo是用handle来处理。
2.有进度的回调下载。
3.有销毁线程。

参考以下网站例子:

https://github.com/lizhangqu/CoreProgress

https://github.com/shuaijia/JsDownload

https://github.com/zhourongxin/RetrofitRxDownload

Step 1. Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

Step 2. Add the dependency

dependencies {
            implementation 'com.github.zhongjhATC:Retrofit2Rxjava2Download:1.0.0'
    }

例子

public class MainActivity extends AppCompatActivity implements DownloadListener {

    ```````
    ```````

    // 初始化
    private DownloadHelper mDownloadHelper = new DownloadHelper("http://www.baseurl.com", this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ```````
        url = "http://assets.geilicdn.com/channelapk/1000n_shurufa_1.9.6.apk";
    }

    public void download(View view) {
        // 调用方法
        mDownloadHelper.downloadFile(url, Environment.getExternalStorageDirectory() + File.separator + "/apk", "aaa.xlsx");
    }

    @Override
    protected void onDestroy() {
        // 销毁
        mDownloadHelper.dispose();
        super.onDestroy();
    }

    /**
     * 加载前
     */
    @Override
    public void onStartDownload() {

    }

    /**
     * 加载中
     */
    @Override
    public void onProgress(int progress) {
        tv.setText("下载中 : " + progress + "%");
    }

    /**
     * 加载后
     *
     * @param file 文件
     */
    @Override
    public void onFinishDownload(File file) {
        tv.setText("下载成功。\n" + file.getAbsolutePath());
    }

    /**
     * 加载失败
     *
     * @param ex 异常
     */
    @Override
    public void onFail(Throwable ex) {
        tv.setText("下载失败 : " + ex.getLocalizedMessage());
    }

}

相关文章

  • Retrofit2+Rxjava2 封装 下载文件

    demo下载:https://github.com/zhongjhATC/Retrofit2Rxjava2Down...

  • 前端下载表格

    1. 文件流下载 1)封装下载函数 2)调用函数 2. 数据下载 一. .csv 格式下载 二. .xslx格式表...

  • 对AFNetworking的简单封装

    新版 :AFNetworking 3.X 的二次封装(GET、POST、文件上传、文件下载、超时、HTTPS、请求...

  • vue中下载文件问题

    前段时间在项目中遇到文件需要下载,直接拿出了之前封装的下载指令,在用的时候发现在下载jpg、txt文件时,并不会直...

  • FastHttpClient

    简单易用的httpclient 封装OkHttp3,对外提供了POST请求、GET请求、上传文件、下载文件、htt...

  • OkHttp3详解

    一、OkHttp的封装 (1)创建JSON回调 (2)创建下载文件回调 (3)网络请求封装 OkHttp3源码详解

  • 1、文件下载downloadFile函数封装

    // 文件下载 export function downloadFile (url, data, method) ...

  • iOS 底层原理 day03 Cycript Reveal

    一、使用 Cycript 动态修改 iPhone 真机运行中的 App 下载封装好语法的 cy 文件 下载地址 M...

  • git 屏蔽某些文件上传

    之前下载别人封装的库,看到里面有些文件是要自己下载的,也就会没上传到github上,还有自己在用git上传文件时,...

  • CGXCategoryKitOC延展库

    一、封装常用控件延展库 ,已经支持pod下载导入头文件 #import

网友评论

    本文标题:Retrofit2+Rxjava2 封装 下载文件

    本文链接:https://www.haomeiwen.com/subject/tvbndftx.html