首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一行代码实现Okhttp,Retrofit,Glide下载上传进度监听

需求 1 (多平台支持) 写之前翻了下 Google 发现,Okhttp 实现上传下载进度监听,并不困难,只用重写 RequestBody 和 ResponseBody ,并配合 Interceptor...替换是简单,但是不是每个请求都需要监听上传和下载进度,不可能每个请求都替换啊,开始我想到的是给需要监听进度的请求生成个标记,然后在 Interceptor 中解析到这个标记,就说明这个请求需要监听上传或下载进度...的 Api 来设计,用户只用一行代码,传入一个 标记 和一个 事件 即可实现上传和下载进度监听,没错 标记 就是 Url , 事件 就是用于获取进度信息的 监听器,这样也就满足了 需求 3 的一行代码实现的需求...因为只有他们第一时间知道,读取和写入的时间,现在只需要把对应 Url 的所有 监听器 放入他的 Body 中就可以了 因为 需求 4 中提到,我们并不知道哪些请求是需要监听上传或下载进度,哪些是不需要的...,因为我们可以在 Interceptor 中拿到 Request 的 Url 之前我们已经将 Url 作为 Key 注册进了容器,如果容器里面 Contain 这个 Url 那就是说明这个请求,是需要监听上传或下载进度

77820
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 史上最优雅的实现文件上传、下载及进度监听

    前言 本文将直接使用RxHttp库实现文件上传、下载、断点下载、进度监听,不对RxHttp做过多讲解,如果对RxHttp不了解,可以先去查阅相关资料先行了解,本文目的在于让更多的读者知道RxHttp库...,可在使用from操作符时,传入一个解析器Parser 带进度上传进度上传使用uploadProgress操作符,并结合doOnNext、filter、map即可 RxHttp.postForm...")//添加参数,非必须 .addHeader("versionCode", "100") //添加请求头,非必须 .uploadProgress() //注:如果需要监听上传进度...RxHttp.get("http://update.9158.com/miaolive/Miaolive.apk") .downloadProgress(destPath) //注:如果需要监听下载进度...、下载相关就介绍到这里了,到这你会发现,涉及到进度监听,都使用了RxJava的doOnNext、filter、map这3个操作符,一切都那么的相似,极大的降低了学习成本。

    2.9K30

    js文件异步上传进度

    进度条的应用是为了显示的告诉用户文件上传了多少,对于小文件的上传基本上应用不到进度条。...进度条主要应用于大文件的上传,在于告诉用户上传情况,不至于让用户无状态等待,增加了用户的体验,如果没有进度条,在上传过程中,用户不知道是不是卡死了,这种体验就很差了,下面我们来说一下如何在异步上传时显示进度条...其实无论是原生js写xhr,还是jq的ajax,还是axios的异步都提供了一个获取上传进度的API,首先我们来看一下原生js如何获取上传进度。...,其原理就是注册监听事件,其他的例如error,load等方法类似,感兴趣的可以写出来进行打印输入一番,看看输出结果就一目了然了。...; } }); axios获取上传进度 在axios中提供了一个参数onUploadProgress,有了这个参数就可以很方便的获取上传进度了,其方法实现还是和原生js的一样,这个参数其实就是注册一个监听事件

    10K20

    Android下载进度监听和通知的处理详解

    本文实例为大家分享了Android下载进度监听和通知的具体代码,供大家参考,具体内容如下 下载管理器 关于下载进度监听,这个比较简单,以apk文件下载为例,需要处理3个回调函数,分别是: 1.下载中...e */ void onError(Exception e); /** * 下载中 * @param count 总大小 * @param current 当前下载的进度...,Service用于后台默默的下载文件,这里我用到了IntentService,它的好处在于任务执行完毕后会自动关闭服务.同时程序用如果其他地方还想监听到下载的进度,那么可以在IntentService...下载服务中通过发送广播告知进度....setAutoCancel(true). setTicker("开始更新"). setDefaults(1). setProgress(100, 0, false). setContentText("下载进度

    2K41

    使用Retrofit下载文件并实现进度监听的示例

    1.前言 最近要做一个带进度条下载文件的功能,网上看了一圈,发现好多都是基于 OkHttpClient 添加拦截器来实现的,个人觉得略显复杂,所以还是采用最简单的方法来实现:基于文件写入来进行进度监听...2.实现步骤 2.1 设计监听接口 根据需求设计一下接口: public interface DownloadListener { void onStart();//下载开始 void onProgress...(int progress);//下载进度 void onFinish(String path);//下载完成 void onFail(String errorInfo);//下载失败 }...2.4 监听下载进度 private static void writeResponseToDisk(String path, Response<ResponseBody response, DownloadListener...; } } catch (IOException e) { e.printStackTrace(); } } } 所以,实际就是通过监听文件的写入来实现进度监听

    3.9K10

    js - 预加载+监听图片资源加载制作进度

    因为功能的特殊性,就要求我们提前监听页面的静态图片是否全部加载完毕。即处理预加载。...但是监听静态图片时,后来发现所用的方法监听不到背景图,所以改成了图片。 这是一个坑。...原来页面加载完毕后刷新,再展示的图片都是缓存的图,而load又监听不到缓存的图。 要了我的老命了。 于是我又找,什么方法能监听缓存的图啊? 目标锁定了js里的img.complete。...所以我们要给用户一个及时的反馈,就要获取图片加载的进度。...100:progress 如果加载进度想做成进度条效果,只需要把得到的progress值赋给进度条的宽度即可。 至于进度条怎么做,看我这篇博文。

    9.7K22
    领券