rxjava原理
更新时间: 2025-06-18 11:00:59
1、RxJava是一种基于观察者模式的响应式编程框架,其中的主要角色有:Observable 是RxJava描述的事件流,在链式调用中非常清晰,事件从创建到加工处理再到被订阅者接收到,就是一个接一个的Observable形成的一个事件流。
2、每一步方法的调用,都会返回一个新的Observable给下一步,这个是RxJava源码的基础。同样是链式调用,但它与我们常见的Builder模式不太一样,每个操作符,每次线程切换,每步都会新建一个Observable而非直接加工上一步的Observable返回给下一步。
3、ObservableOnSubscribe 是这个事件流的源头,下面我们称之为事件源,一般由我们自己创建并传入。我们创建时,需要重写其subscribe()方法,为了和Observable中的subscribe()方法区别,我们将在下面贴出的代码中将其改名为call()。
4、我们在调用链中有时会用到各种操作符进行一些变换,事实上每个操作符都会重写这么一个call()方法,相对于我们创建事件源时在这里写入的源业务代码,这些操作符在这里要做的事是由RxJava钦定的,一般是连接事件流的上下游。在这里我们将准备好被订阅的数据,并调用subscribe()参数中ObservableEmitter的onNext(),onCompleted()或onError()通知订阅者数据准备情况。
5、Observer 是整个事件流的订阅者,也就是说,它将会订阅前面事件创建,加工以后的最终结果。它也是由我们创建的,我们将要重写它的onNext(),onCompleted(),onError()和onSubscribe(),在接下来的分析中我们将简化一些,只关注onNext()。我们创建出了Observer以后,将会使用经过上面所有步骤的最后一步生成的Observable,调用它的subscribe(),与事件源产生联系。
rxjava原理 相关文章
- 下雨天听什么音乐?科学揭秘天气如何改...
- 极端天气如何影响股市波动?揭秘气候经...
- 气象武器与战场环境:揭秘军事行动中如...
- 四川省南充市仪陇县气象台发布暴雨橙色...
- 广西壮族自治区桂林市灌阳县气象台发布...
- 内蒙古自治区通辽市气象台发布大风蓝色...
- 贵州省贵阳市开阳县气象台发布大风蓝色...
- 贵州省黔南布依族苗族自治州贵定县气象...
- 山东省青岛市即墨区气象台发布高温橙色...
- 河南省焦作市武陟县气象台发布雷暴大风...
- 宁夏回族自治区固原市气象台发布雷电黄...
- 陕西省商洛市山阳县气象台发布雷雨大风...
- 江苏省盐城市响水县气象台发布高温橙色...
- 新疆维吾尔自治区哈密地区伊吾县气象台...
- 河南省郑州市荥阳市气象台发布雷暴大风...
- 江苏省连云港市东海县气象台发布高温黄...
- 山东省青岛市胶州市气象台发布高温橙色...
- 河南省焦作市温县气象台发布暴雨橙色预...
- 贵州省贵阳市乌当区气象台发布大风蓝色...
- 宁夏回族自治区固原市彭阳县气象台发布...