android studio 30天学习笔记-day 9-rxjava2补充

昨天介绍rxjava2简单的写法,今天会介绍rxjava2其他的做法

Observables

RxJava提供多种Observables,主要差异在於callback的类型不同,首先:

1.Observable

不支持back pressure,可在onNext(String s)多次执行,完成就调用onComplete(),在onNext(String s)执行期间发生异常则调用onError(Throwable e)

Observable.fromCallable(new Callable<String>() { 
            @Override
            public String call() throws Exception {
                return null;
            }
        }).subscribe(new DisposableObserver<String>() {
            @Override
            public void onNext(String s) {
                
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });

2.Flowable

用法跟Observable差不多,支持back pressure,在被观察者发送事件的速度快於观察者的处理速度时,降低被观察者发送事件的速度。

3.Completable

更新资料时,只需要知道资料的更新是成功或者是失败,无回传值,只处理 onError(Throwable e)onComplete()的事件

Completable.fromAction(new Action() { 

            @Override
            public void run() throws Exception {

            }
        }).subscribe(new DisposableCompletableObserver() {
            @Override
            public void onComplete() {

            }

            @Override
            public void onError(Throwable e) {

            }
        });

4.Single

回传值成功就调用onSuccess(String s),否则调用onError(Throwable e)

 Single.fromCallable(new Callable<String>() {
            @Override
            public String call() throws Exception {
                return null;
            }
        }).subscribe(new DisposableSingleObserver<String>() {
            @Override
            public void onSuccess(String s) {

            }

            @Override
            public void onError(Throwable e) {

            }
        });

5.Maybe

onSuccess(String s)接收Maybe发出的数据,完成就调用onComplete(),否则调用onError(Throwable e)
onSuccess(String s)必须执行於onComplete()onError(Throwable e)之前,否则无效。

Maybe.fromCallable(new Callable<String>() {
            @Override
            public String call() throws Exception {
                return null;
            }
        }).subscribe(new DisposableMaybeObserver<String>() {
            @Override
            public void onSuccess(String s) {
                
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });

从上方介绍的Observables中,会发现其中有fromCallablefromAction,都是建立要执行的内容,差异是:
fromCallable:有回传值
fromAction:无回传值


<<:  [从0到1] C#小乳牛 练成基础程序逻辑 Day 9 - 运算子Demo 程序码演示

>>:  [Day09] Storybook - What's a story and how to write

Day12 - 物理模拟篇 - 弹跳球世界III - 成为Canvas Ninja ~ 理解2D渲染的精髓

我们在上一次讲到用数理观点来观察反射行为的诸多细节,而这篇文则是要讲解斜向抛射。 不过因为斜向抛射的...

邀约演讲经验谈

今天要跟各位分享的是我经营粉专後发生的故事! 进入正题 在经营粉专的初期,我维持约 2-3 天产出一...

D-12 设定挡 ? configuration ? IOptionsMonitor

设定档 昨日说明关於使用者身分验证以及权限设定的部分加以说明,并且透过第三方插件的方式展现如何在do...

[Day24] Vue3 E2E Testing: Cypress 基本结构

今天这篇文章主要会介绍 Cypress 的基本结构以及常见的语法,那我们马上开始吧! 基本结构 Cy...

【学习笔记】Git 还原: reset、checkout

最近正在学习git,想要透过把学到的东西写下来,来记录一下自己学到的东西,也方便以後回顾这些知识。 ...