作者/Tamic
http://www.tamicer.com
授权请访问 http://101701130004540.bqy.pub
前几篇主要介绍了retrofit
基本使用,结合rxJava
的案列,以及RxJava
结合retrofit的封装,包括公用参数,局部参数请求头添加,缓存,https, 文件上下传,结果解析,异常处理等,还有一些技巧,那么还有一个比较关键的是取消问题。
两者结合技巧可点击阅读;https://tamicer.github.io/2016/07/12/retrofti007
Retrofit取消请求
#构建API
|
|
取消请求
直接用call实例进行cancel即可
|
|
Rxjava取消订阅
遇到取消取消订阅的情况可以直接:
|
|
避免重复:
|
|
如果需要在非UI线程的情况,可以直接指定线程为IO线程。
|
|
Retrofit2.0+ RxJava 取消请求
好了 目前很多情况是使用两者来做网络框架的,那么在两者结合情况我们是如何使用取消某个请求呢,或者避免重复请求,今天就稍微给大家介绍一下本人的处理方式
构建一个接口
主要管理rxJava的Subscription
描述。这个东东可以理解为对一些事件所给的总Tag一样,你去办理身份证给的回执单一样,有了回执单你就可以追踪办理身份证的这个事情。
|
|
具体impl的RxApiManager
主要处理真实的取消请求作用,维护rxjava
的订阅池。
|
|
##使用姿势
具体请求的subscription
Subscription subscription = Retrofit返回的subscription实例
加入rxApi管理池
|
|
取消
|
|
一般我们在在activity
的 onDestroy()
, Fragment的 onDestroyView()
中调用
也可以在onPause()
中取消;
|
|
好了两句代码就能优雅的取消请求了,赶快试试吧!
案列下载:
github:https://github.com/Tamicer/Novate
Retrofit + RxJava系列请阅读
- Novate网络库:Retrofit2.0和RxJava1.x的又一次完美封装。
- Retrofit 2.0 超能实践(九)Rxjava结合Retrofit,如何优雅的取消请求!
- Retrofit 2.0 超能实践(八)源码解析,玩转IOC和AOP, 徒手实现属于你的Retrofit框架
- Retrofit 2.0 超能实践(七)Rxjava +Retrofit 你需要掌握的几个经典技巧
- Retrofit 2.0 超能实践(六)基于Retrofit2.0+RxJava 封装的超好用的RetrofitClient工具类
- Retrofit 2.0 超能实践(五),动态Okhttp对Request统一添加header和Parameter
- Retrofit 2.0 超能实践(四),实现大文件多线程断点下载
- Retrofit 2.0 超能实践(三),轻松实现多文件/图片/Json字符串/表单提交上传
- Retrofit 2.0 超能实践(二),Okhttp完美同步持久Cookie实现免登录
- Retrofit 2.0 超能实践(一),完美支持加密Https传输
已版权备案,转载请访问
http://101701130004540.bqy.pub