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<String>() {
            @Override
            public void call(Subscriber<? super String> subscriber) {
                subscriber.onNext("Hello");
                subscriber.onNext("RxJava");
                subscriber.onCompleted();
            }
        }).subscribe(new Observer<String>() {
            @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<String>() {
            @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);
            }
        });
just结果

from

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

String[] sendMsg={"you","are","beautiful"};
        rx.Observable.from(sendMsg).subscribe(new Observer<String>() {
            @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);
            }
        });
from结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 线程切换基础概念在不指定线程的情况下, RxJava 遵循的是线程不变的原则,即:在哪个线程调用 subscrib...
    弓长剑鸣阅读 181评论 0 1
  • 本篇文章介主要绍RxJava中操作符是以函数作为基本单位,与响应式编程作为结合使用的,对什么是操作、操作符都有哪些...
    嘎啦果安卓兽阅读 2,890评论 0 10
  • 响应式编程简介 响应式编程是一种基于异步数据流概念的编程模式。数据流就像一条河:它可以被观测,被过滤,被操作,或者...
    说码解字阅读 3,095评论 0 5
  • 注:本系列文章主要用于博主个人学习记录,本文末尾附上了一些较好的文章提供学习。转载请附 原文链接RxJava学习系...
    黑丫山上小旋风阅读 2,163评论 1 5
  • 不知不觉已是数年, 旧时的画面依然历历在目, 难得有记忆好的时候, 却记不住时光的流逝。
    不知不觉云阅读 164评论 2 0