RxJava系列—(一)RxJava基础

本文介绍了RxJava的基础概念,包括Observer与Subscriber的区别,如Subscriber的onStart()方法和unsubscribe()的使用。文章还详细讲解了如何创建Observable对象,如通过create()、just()方法,并探讨了订阅过程,强调了subscribe()内部实现的onStart()、OnSubscribe.call()和返回Subscription的重要性。最后,提到了不完整定义订阅的方式,如使用Action0和Action1。
摘要由CSDN通过智能技术生成

RxJava基础

原理:RxJava最核心的东西就是Observable(事件源、被观察者)、subscribers(观察者)。通过事件源发出一系列事件,观察者处理这些事件。
Observer:观察者,为一个接口,Subscriber为一个实现了Obsever接口的抽象类,在subscribe时,实际上Obsver总是会被转化为Subscriber后再使用。如果只是使用基本功能选择Obsever和Subscriber都一样。

Obsever和Subscriber区别

  1. onStart(): 这是 Subscriber 增加的方法。它会在 subscribe 刚开始,而事件还未发送之前被调用,可以用于做一些准备工作,例如数据的清零或重置。这是一个可选方法,默认情况下它的实现为空。需要注意的是,如果对准备工作的线程有要求(例如弹出一个显示进度的对话框,这必须在主线程执行), onStart() 就不适用了,因为它总是在 subscribe 所发生的线程被调用,而不能指定线程。要在指定的线程来做准备工作,可以使用 doOnSubscribe() 方法,具体可以在后面的文中看到。

    1. unsubscribe(): 这是 Subscriber 所实现的另一个接口 Subscription 的方法,用于取消订阅。在这个方法被调用后,Subscriber 将不再接收事件。一般在这个方法调用前,可以使用 isUnsubscribed() 先判断一下状态。 unsubscribe() 这个方法很重要,因为在 subscribe() 之后, Observable 会持有 Subscriber 的引用,这个引用如果不能及时被释放,将有内存泄露的风险。所以最好保持一个原则:要在不再使用的时候尽快在合适的地方(例如 onPause() onStop() 等方法中)调用 unsubscribe() 来解除引用关系,以避免内存泄露的发生。

一个Observable可以发出零个或者多个事件,知道结束或者出错。每发出一个事件,就会调用它的Subscriber的onNext方法,最后调用Subscriber.onNext()或者Subscriber.onError()结束。

可能你会觉得和观察者模式一样?但是有一点区别是:事件源如果没有任何Subscribers时,是不会发出事件的,这点和观察者模式不同。

创建Observable对象

  • Observerable(被观察者)决定什么时候发送时间以及触发什么样的是事件,Rx通过Create()方法来创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值