![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RxJava
文章平均质量分 75
yuxuehandong
上学的时候不喜欢看书,工作了却希望有时间能看看书
展开
-
RxJava操作符变换过程
parent 持有了o,o是也就是subscriberLast,还持有了transformer,也就是func1。我们知道在Observable创建好后,调用了subscribe方法就可以进行订阅了,最后调用的也是Observable创建时传入的OnSubscribe对象的call方法,以obs1的创建举例,也就是我们这里的。在parent的onnext方法中调用了func1的call方法,还记得我们在func1的call方法中写的什么,没错就是转换字符串,call方法的返回值就是转换后的字符串。原创 2023-03-11 19:41:42 · 478 阅读 · 0 评论 -
RxJava的订阅过程
继续回到订阅部分的代码,类似之前的分析,代码已经在上面类贴出 RxJavaHooks.onObservableStart(observable, observable.onSubscribe)也只是返回了observable.onSubscribe实例,最后的.call(subscriber)也就是直接调用了我们在创建observable时传入的匿名实例call方法,最后返回subscriber。在正式的订阅关系产生之前,首先会执行subscriber.onStart()方法,这里可以做一些初始化工作。原创 2023-02-22 15:36:12 · 444 阅读 · 0 评论 -
RxJava中的Subscriber
传入的n肯定是要从数据源请求的数据数量,最大值为Long.MAX_VALUE,超过最大值的数据可能会丢弃掉,如果设置了producer,则调用producer的request方法请求数据,反之,则根据n调用 addToRequested()设置requested变量,requested没set过,则直接赋值为n,set过则大小增加n,最后判断是否大于上限Long.MAX_VALUE。前来两个构造最后都会调用第三个,直接看第三个构造方法,Subscriber(Subscriber原创 2023-02-22 14:13:35 · 902 阅读 · 0 评论 -
RxJava的线程控制
行为模式和 newThread()差不多,区别在于 io() 的内部实现是用一个无数量上限的线程池,可以重用空闲的线程,因此多数情况下 io() 比 newThread() 更有效率。• Schedulers.trampoline():当我们想在当前线程执行一个任务时,并不是立即时,可以用.trampoline()将它入队。• Schedulers.immediate():直接在当前线程运行,它是timeout、timeInterval和timestamp操作符的默认调度器。原创 2023-02-21 15:17:32 · 695 阅读 · 0 评论 -
RXjava中的操作符
Rxjava中的操作符创建型操作符interval 创建一个按固定时间间隔发射整数序列的Observable,相当于定时器上面的代码每隔3s就会调用call方法并打印Log。其中aLong为从0开始的整数每次+1上面代码也可以合起来写,没有特别说明,本文后面介绍操作符的示例代码都是合起来写的range 创建发射指定范围的整数序列的Observable,可以拿来替代for循环,发射一个范围内的有序整数序列。第一个参数是起始值,并且不小于0;第二个参数为终值,左闭右开。打印日志repeat创建一个原创 2023-02-21 14:35:06 · 635 阅读 · 0 评论 -
RxJava中的Subject
需要注意的是,PublishSubject可能会一创建完成就立刻开始发射数据,因此这里会有一个风险:在Subject被创建后到有观察者订阅它之前这个时间段内,一个或多个数据可能会丢失。如果此时还没有收到任何数据,它会发射一个默认值,然后继续发射其他任何来自原始Observable的数据。当Observable完成时(必须调用onCompleted()才会发射数据),AsyncSubject只会发射来自原始Observable的最后一个数据(不管数据在订阅前还是订阅后)。原创 2023-02-21 14:35:42 · 428 阅读 · 0 评论 -
Android中的Rxjava
observer 是一个观察者接口,泛型T为观察者观察数据的类型,里面只有三个方法,其中onError()和onCompleted()最后只能调用其中一个,调用了此二方法后onNext()将不会在调用。其中onStart()方法,它会在事件还未发送之前被调用,可以用于做一些准备工作。这是一个可选方法,默认情况下它的实现为空。那么just,from之间的区别是什么呢,通过查看Observable源码,just方法内部也是调用的from方法。onNext()方法可以调用0到多次,观察到的数据处理在此实现。原创 2023-02-21 14:33:04 · 699 阅读 · 0 评论