在学习并准备在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依赖活动或碎片的生命周期进行取消订阅?
在网上查找的资料显示使用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依赖活动或碎片的生命周期进行取消订阅?
解决方案 »
- 请教handler,intent,Bundle,BroadcastReceiver传递消息的区别
- 请教:如何获取连接端口
- 怎么设置TableLayout里面单元格边框颜色,很急,谢谢!分就这么多了.
- 能不能推荐下,国外的android 开发,实战例子多一些的书籍呢。
- 安卓编程怎么让自己的播放器,在别的播放声音的软件播放时自动暂停
- listview多列滑动,怎样屏蔽滑动时候容易产生点击事件
- 怎么判断应用已经安装完了?
- 求一只需增删改查小app, 高分来人,(对您来说一杯茶的功夫·······)
- 自定义控件重绘没有效果
- Android 子线程更新UI问题
- 为什么会这样?明明为真却不认!
- Android adb 过一会就会卡死是什么原因
第二个:上面也提了 只要出现 onSubscribe(Disposable d) 就需要手动解注, RxLifecycle框架没用过。
第三个:解注后,没有了内存泄漏。
第四个:不知道,没注意过。