RxJava的初步认识
来源:互联网 发布:锐捷云课堂安装软件 编辑:程序博客网 时间:2024/06/15 06:06
摘自http://www.jianshu.com/p/19cac3c5b106 谢谢他
观察者模式
首先要先介绍一下观察者模式(可能比喻的不够恰当,意思到了就好);
观察者:监视着被观察者的行为,当被观察者某个状态改变的时候会通知观察者,观察者会执行对应的操作;
被观察者:被监视的对象,当某个状态改变的时候会通知观察者;
订阅(或注册):将观察者和被观察者建立联系。
(很乱?来个栗子?)
这里举一个我个常用的例子,点击Button后触发OnClickListener
中的onClick()事件。在这个事件中他们的角色分别如下:
观察者:OnClickListener;
被观察者:Button;
订阅(或注册):setOnClickListener()。
RxJava
在上面介绍了观察者模式,这里也将RxJava中的三个角色进行一下角色分配
观察者:Observer;
被观察者:Observable;
订阅(或注册):subscribe()。
代码实现:
package com.example.rxjava;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import java.util.ArrayList;import java.util.List;import rx.Observable;import rx.Observer;import rx.Subscriber;public class MainActivity extends AppCompatActivity { String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建一个观察者 Observer<String> observer = new Observer<String>() { @Override public void onCompleted() { Log.i(TAG, "Completed"); } @Override public void onError(Throwable e) { Log.i(TAG, "Error"); } @Override public void onNext(String s) { Log.i(TAG, s); } }; //使用Observable.create()创建被观察者 Observable observable1 = Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { subscriber.onNext("Hello"); subscriber.onNext("Wrold"); subscriber.onCompleted(); } }); List<String> list = new ArrayList<String>();//创建被观察者的简化方法 list.add("Hellow"); list.add("Wrold"); Observable observable2 = Observable.from(list); //订阅 observable1.subscribe(observer); observable2.subscribe(observer); }}
0 0
- RxJava的初步认识
- Android RxJava初步认识
- RxJava的初步学习
- 对RxJava的认识
- RxJava的初步使用(一)
- 指针的初步认识!
- 类的初步认识
- return的认识,初步
- checksum的初步认识
- Ajax的初步认识
- xml的初步认识
- 初步的架构认识
- 指针的初步认识
- 进程的初步认识
- VC的初步认识
- json的初步认识
- 定时器的初步认识
- CSS的初步认识
- PHP获取当前时间
- table
- react开发必不可少的.babelrc配置
- Java设计模式之——适配器模式
- 使用automation.py自动化重命名pdf书签,使全大写字母变成首字母大写
- RxJava的初步认识
- struts2使用ajax实现页面和action之间通过json数据交互
- 19、SSM框架-Mybatis入门概述及第一个Mybatis实例实现增删改查(1)
- 最强 Android Studio 使用小技巧和快捷键
- 网卡
- hadoop关于block方面的相关总结【转】
- NSTask 在实际工程中的使用
- 源码分析-PriorityQueue
- 一天一个设计模式---责任链模式