rx+retrofit 学习笔记

1. rx+retrofit+mvp,网络请求时如何解决Activity内存泄漏和取消回调?不需要使用RxActivity
使用WeakReference<IView>,最好用WeakReference,能取消掉回调里面的代码执行,判断弱引用是否为空


2. rx+retrofit,非mvp模式,需要采用static的方法解决内存泄漏




3. rx+retrofit网络请求,使用bindActivityEvent容易导致程序退出后,线程回调onComplete出错崩溃,bindToLifecycle不会导致程序崩溃。
rx纯Observerable异步操作,使用bindActivityEvent不会导致程序崩溃


4. bindToLifecycle,退出界面后,先回调onComplete,再调用onDestory,如果是home键退出,先回调onPause,再回调onComplete,再回调onStop
bindUntilEvent(ActivityEvent.DESTROY),退出界面后,先调用onDestory,再调用onComplete


5. bindToLifecycle和bindUntilEvent,如果线程正处于sleep状态,会中断。


6. 使用RxActivity和RXFragment,不会导致new多个Subscriber,只取消一次订阅,仍然会全部取消订阅


7. Subscriber能被主动取消订阅,并且在onComplete和onError之后被自动取消订阅,因此如果只定义一个Subscriber对象是无法被重用的,通常用Subscriber.
Observer不能被取消订阅,在onComplete和onError之后不会取消订阅,定义一个Observer对象可以重用。


8. rx+retrofit的网络请求完毕以后,会自动回调onNext,onComplete,如果网络异常调用onError,而纯rx的Observerable,则不会,需要程序员主动在call里面调用onNext,onComplete。


9. rx Observerable执行异步操作,要放在static的函数里面配合WeakReference使用,否则会造成Activity内存泄漏,(但是如果在fragment里面,则貌似不会?)


10. Subscriber回调函数要做引用的非空判断











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值