RxJava笔记_1_创建1

RxJava 三要素:

1.Observer: 观察者

2.Observable: 被观察者

3.subscribe: 订阅

目录

1. 需要在build.gradle 添加reactivex的依赖:

2. 创建被观察者

3.创建观察者

4.订阅

5.输出:


1. 需要在build.gradle 添加reactivex的依赖:

implementation 'io.reactivex.rxjava2:rxjava:2.1.4'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'

 

2. 创建被观察者

        var observable = Observable.create(object : ObservableOnSubscribe<Int> {
            override fun subscribe(emitter: ObservableEmitter<Int>) {
                Log.d(TAG, "Observable===== subscribe-currentThread name=${Thread.currentThread().name}")
                emitter.onNext(1);
                emitter.onNext(2);
                emitter.onNext(3);
                emitter.onComplete()
            }
        })

使用Observable.create() 创建, 并且实现接口ObservableOnSubscribe, 该接口实现的方法subscrible中有参数

ObservableEmitter, 使得可以向观察者发送数据

3.创建观察者

        var observer = object : Observer<Int> {
            override fun onComplete() {
                Log.d(TAG, "Observer===== onComplete")
            }

            override fun onSubscribe(d: Disposable) {
                Log.d(
                    TAG,
                    "Observer===== onSubscribe currentThread name=${Thread.currentThread().name}"
                )
            }

            override fun onNext(t: Int) {
                Log.d(TAG, "Observer===== onNext parm = $t")
            }

            override fun onError(e: Throwable) {
                Log.d(TAG, "Observer===== onError")
            }

        }
 Observer<Int> 泛型参数和被观察者中的 ObservableOnSubscribe<Int> 泛型参数一致

4.订阅

        observable.subscribe(observer)

5.输出:

07-19 17:32:16.358 D 11692    11753    RxJavaTest:             Observer===== onSubscribe currentThread name=Instr: androidx.test.runner.AndroidJUnitRunner 
07-19 17:32:16.358 D 11692    11753    RxJavaTest:             Observable===== subscribe-currentThread name=Instr: androidx.test.runner.AndroidJUnitRunner 
07-19 17:32:16.358 D 11692    11753    RxJavaTest:             Observer===== onNext parm = 1 
07-19 17:32:16.358 D 11692    11753    RxJavaTest:             Observer===== onNext parm = 2 
07-19 17:32:16.358 D 11692    11753    RxJavaTest:             Observer===== onNext parm = 3 
07-19 17:32:16.359 D 11692    11753    RxJavaTest:             Observer===== onComplete 

附大牛参考网站

https://juejin.im/post/5b17560e6fb9a01e2862246f#heading-2

https://juejin.im/post/5d8228f7e51d4561db5e3b02

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值