Android异步学习(三):初探 RxAndroid 3.0

本文介绍了RxAndroid 3.0的基本概念和优势,探讨了RxJava与RxAndroid的关系,阐述了观察者模式在RxAndroid中的应用,并提供了依赖引入、Observable与Observer创建、线程切换及取消订阅的操作示例。
摘要由CSDN通过智能技术生成

本篇学习RxAndroid的使用。

通过前面的学习,已经掌握了Thread + Runnable和Handler、AsyncTask的两种方式,不了解的可以看以前的文章。

Android异步学习(一):Thread和Runnable
Android异步学习(二):Handler和AsyncTask
Android异步学习(三):初探 RxAndroid 3.0

RxJava

那么RxJava是什么?

在GitHub上的说明是这么描述的:

RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库

太难了,翻译过来就是

一个XXX的异步的库。

RxJava和RxAndroid的关系:RxAndroid是RxJava在Android的一个扩展库。

那么RxAndroid对于其他异步工具的优势是什么呢?

简洁!因为他相对于其他的足够简洁,尤其是在复杂的逻辑中。

观察者模式

RxAndroid采用的是观察者模式。下面引用扔物线大神的原话解释RxAndroid中的观察者模式:

RxJava 有四个基本概念:Observable (可观察者,即被观察者)、 Observer (观察者)、 subscribe (订阅)、事件。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知 Observer。

与传统观察者模式不同, RxJava 的事件回调方法除了普通事件 onNext() (相当于 onClick() / onEvent())之外,还定义了两个特殊的事件:onCompleted() 和 onError()。

onCompleted(): 事件队列完结。RxJava 不仅把每个事件单独处理,还会把它们看做一个队列。RxJava 规定,当不会再有新的 onNext() 发出时,需要触发 onCompleted() 方法作为标志。
onError(): 事件队列异常。在事件处理过程中出异常时,onError() 会被触发,同时队列自动终止,不允许再有事件发出。
在一个正确运行的事件序列中, onCompleted() 和 onError() 有且只有一个,并且是事件序列中的最后一个。需要注意的是,onCompleted() 和 onError() 二者也是互斥的,即在队列中调用了其中一个,就不应该再调用另一个。

RxJava的观察者模式

RxAndroid的使用

  • 依赖

implementation ‘io.reactivex.rxjava3:rxandroid:3.0.0’

  • 创建Observable

    即被观察者,决定什么时候触发事件以及触发怎样的事件。创建Observable有多种方式,下面是基本的create、just和from。

		// 常用的创建方式,手动调用发送
        Observable mObservable = Observable.create(new ObservableOnSubscribe() {
   
            @Override
            public void subscribe(@NonNull ObservableEmitter emitter) throws Throwable {
   
                emitter.onNext("琴伤 - Jay");
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值