在学习并准备在Android项目中使用RxJava及相关框架,但是还存在一些疑问,谢谢大家,请帮忙解答一下!1.RxJava创建的观察、被观察者和之间的观察关系,是否是不会自动被回收?
在网上查找的资料显示使用create创建被观察者后手动调用onCompleted,或者直接使用from、just创建的被观察者会自动调用onCompleted,订阅关系会解除。在和retrofit结合时,资料的大多数做法是retrofit返回RxJava的观察对象,然后指定被观察者线程、观察者执行线程,最后创建观察者处理数据,这里就有了第二个问题:
2.RxJava + Retrofit进行网络请求这一过程是不会自动取消订阅关系的,是不是?
如果是,网上资料采用了RxLifecycle这个框架将请求与Android活动或碎片的生命周期进行关联,进而在活动或碎片的生命周期结束时取消订阅;
3.但即便这样,是不是在一个活动或碎片中n次请求服务依然会不断消耗内存?基于1、2两个问题,这里就有了第四个问题:
4.解除订阅关系后哪些对象会被释放?5.RxBinding是否能自动取消订阅?若不能能不能采用RxJava + Retrofit的处理方式在返回得到的observable对象上调用compose转换用RxLifecycle依赖活动或碎片的生命周期进行取消订阅?