RxJava学习笔记(二)

本文是参照吴小龙同学的博客写的RxJava练习

RxJava的世界里,我们有四种角色:

Observable(被观察者)、Observer(观察者)
Subscriber(订阅者)、Subject

Observable和Subject是两个“生产”实体,Observer和Subscriber是两个“消费”实体。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知 Observer。

添加RxJava依赖:

    //RxJava异步的扩展观察者模式
    compile 'io.reactivex:rxjava:1.1.3'
    compile 'io.reactivex:rxandroid:1.1.0'

创建操作

creat

rx.Observable.create(new rx.Observable.OnSubscribe() {
            @Override
            public void call(Subscriber subscriber) {
                subscriber.onNext("Hello");
                subscriber.onNext("RxJava");
                subscriber.onCompleted();
            }
        }).subscribe(new Observer() {
            @Override
            public void onCompleted() {
                Log.d("msg", "onCompleted");
            }

            @Override
            public void onError(Throwable e) {
                Log.d("msg", "onError=" + e);
            }

            @Override
            public void onNext(String s) {
                Log.d("msg", "onNext=" + s);
            }
        });
create结果

just

按参数列表顺序发射数据

rx.Observable.just("I","love","you").subscribe(new Observer() {
            @Override
            public void onCompleted() {
                Log.d("msg", "onCompleted");
            }

            @Override
            public void onError(Throwable e) {
                Log.d("msg", "onError=" + e);
            }

            @Override
            public void onNext(String s) {
                Log.d("msg", "onNext=" + s);
            }
        });
RxJava学习笔记(二)_第1张图片
just结果

from

接收数组,按数组列表顺序发射数据。

String[] sendMsg={"you","are","beautiful"};
        rx.Observable.from(sendMsg).subscribe(new Observer() {
            @Override
            public void onCompleted() {
                Log.d("msg", "onCompleted");
            }

            @Override
            public void onError(Throwable e) {
                Log.d("msg", "onError=" + e);
            }

            @Override
            public void onNext(String s) {
                Log.d("msg", "onNext=" + s);
            }
        });
RxJava学习笔记(二)_第2张图片
from结果

你可能感兴趣的:(RxJava学习笔记(二))