Android RxJava 2 的用法 just 、from、map、subscribe、flatmap、Flowable、Function、Consumer ...

先简单说说RxJava的用途与价值

用途: 异步 (也就是开线程跳转)
价值: 面对复杂的逻辑,它依然 简洁 ,代码 易读java

RxJava2 与 RxJava 最大的不同的地方,就是 Flowable ,这个 Flowable 取代了Rxjava 中的 web

简单的使用:

下面展现一段代码:数组

Flowable
        .fromArray(weeks)
        .map(new Function<String, String>() {
            @Override
            public String apply(String s) throws Exception {
                print("fromFlowable map s = " + s);
                return "111";
            }
        })
        .flatMap(new Function<String, Flowable<String>>() {
            @Override
            public Flowable<String> apply(String s) throws Exception {
                print("fromFlowable flatMap s = " + s);
                String[] strs = new String[]{"222", "333", "444"};
                return Flowable.fromArray(strs);
            }
        })
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Consumer<String>() {
            @Override
            public void accept(String s) throws Exception {
                print("fromFlowable subscribe s = " + s);
            }
        });
Flowable
        .just("星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天")
        .subscribe(new Consumer<String>() {
            @Override
            public void accept(String s) throws Exception {
                print("jsutFlowable subscribe s = " + s);
            }
        });

这就是RxJava2 的最简单的使用了.app

fromArray方法:

传入一个 数组 参数 .将参数注入到 Flowable 中 .
没了.仅仅传个数组进去而已.异步

just方法:

传入 若干个相同 的参数,将参数注入到 Flowable 中 .
没了.仅仅传入1个或者多个参数进去而已.
fromArray() 的做用的同样的. 传参数 !!!ide

map方法:

map()方法,也很好理解.
1. Flowable 传完参数以后
2. 接着调用 map()
3. map()的回调中,能直接拿到传进来的参数,而且须要返回一个返回值.待程序后续操做使用.
4. 参数能够随意操做转换, 参数返回值类型.由 Function泛型控制
5. Function 泛型的第一个传进来的参数 , 第二个是 返回值的类型svg

它的价值:
主要仍是为了处理数据.处理完以后 发射 给下一级spa

flatMap方法:

flatMap()map() 的做用用法所有同样.
惟一的区别,就在于返回值类型.
flatMap 返回去的又是一个 Flowable
其实是 Publisher ,由于 FlowablePublisher实现类 ,因此目前伪装返回的是 Flowable 类型线程

它的价值:
我的认为,就是少写一个循环.由于每每用flatMap,返回去的Flowable , 都是用fromArray() 构造出来的对象.意义就是少写个for 循环.code

subscribe方法:

subscribe()方法是传一个Consumer对象进去.这个对象官方的说法是 被观察者 . 我的理解为是一串 异步 操做以后,进行 回显UI 的一个操做.
accept方法里面写回显UI的代码.

subscribeOn方法:

subscribeOn()传入的是一个 Scheduler 对象,这个对象用来指定. 一系列操做在哪一个线程执行
通常传入子线程均可以.

observeOn方法:

observeOn() 传入的 也是一个 Scheduler对象,做用于subscribeOn同样,用来指定线程.
只不过,它们的区别是:
subscribeOn() 指定的是一系列操做在哪一个线程执行
observeOn() 指定的是 subscribe 的回调 在哪一个线程执行.
通常就是 subscribeOn() 子线程执行 observeOn() 主线程执行

外来资料简单展现:

1. Observable是数据的发射者,它会对外发射数据,而后通过map、flatmap**等等数据处理后,最终传递给**Observer,这个数据接收者。所以,抛开中间数据处理无论,能够看出,Observable对外发射数据,是数据流的开端;Observer接收数据,是数据流的末端

RxJava 的简单用法,先写到这里 若是有什么疑问,欢迎评论区留言. 本人看见会第一时间补充. 仅供参考,谢谢阅读!