首页 > 代码库 > rxjava2学习笔记(1)
rxjava2学习笔记(1)
1.什么是RxJava?
简单,清晰的多线程编程框架.可方便的写出维护性高,逻辑清晰的Java程序.
2.什么是观察者模式?
入门教程讲这种高大上抽象概念都是耍流氓!
3.开始
3.1github地址
https://github.com/ReactiveX/RxJava
https://github.com/ReactiveX/RxAndroid
3.2添加依赖:
compile ‘io.reactivex.rxjava2:rxandroid:2.0.1‘
compile ‘io.reactivex.rxjava2:rxjava:2.0.8‘
以上是rxjava的最新版本.
4.helloworld程序
public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Observable.create(new ObservableOnSubscribe<Integer>(){ @Override public void subscribe(@NonNull ObservableEmitter<Integer> e) throws Exception { int i = 0; while(i < 5) { e.onNext(i++); Log.i(TAG, "subscribe: "+i); } e.onComplete(); // e.onError(new Throwable("onError")); while(i < 10) { e.onNext(i++); Log.i(TAG, "subscribe: "+i); } } }).subscribe(new Observer<Integer>(){ @Override public void onSubscribe(Disposable d) { Log.i(TAG, "onSubscribe: "); } @Override public void onNext(Integer integer) { Log.i(TAG, "onNext: " + integer); } @Override public void one rror(Throwable e) { Log.i(TAG, "onError: "); } @Override public void onComplete() { Log.i(TAG, "onComplete: "); } }); } }
log如下:
5.RxJava原理
Observable相当于产生事件的上流红色水管,
Observer是接受事件的下流绿色水管.
通过subscribe()方法,将两者关联起来,Observer(绿色水管)便可以接受Observable(红色水管)发送过来的事件,进行相应的逻辑处理.
5.1 源码分析
从log可分析出:
1.两个水管通过subscribe()建立连接后,onSubscribe()方法在第一个执行,执行完成后,才进行发送数据.
2.在执行完onComplete()(或者onError())后,上流水管继续发送事件,但下流水管不在接受事件.
5.2 说明
5.2.1 subscribe()方法
该方法接受Observer参数,上面已经用过了.
其他参数,如Consumer<> onNext表示下流水管只关心onNext()事件,其他事件不去处理,多个参数同理.
6.入门结束.下篇文章继续
rxjava2学习笔记(1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。