初识RxJava
来源:互联网 发布:网络思想政治教育提出 编辑:程序博客网 时间:2024/06/06 09:44
RxJava 也火了很久了 RxJava我也使用了一段时间了 使用过之后 很长一段时间再不使用 就给忘了 还要重新寻找Api学习 现在做下笔记
"a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)
Rxjava 能够使我们的异步事件 清晰简洁 事务流程很清晰 , 如果有一大堆的异步调用 异步1成功之后调用 异步2 , 2了之后做一些处理 然后 又3 这样很容易把人绕晕,而且业务逻辑很不清楚,但是如果使用了 Rxjava 就很清楚了。
Rxjava 总得来说就是使用了 观察这模式 Observable (可被观察者 被观察者 也可以称作事件源 用来发出事件)Observer (观察者)Subscriber 订阅者 顾名思义和 Observer一样 是个 观察者 下面说下他的简单使用
创建观察者
Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { subscriber.onNext("onNext"); subscriber.onNext("onNext1"); }}) ;
创建 观察者或者订阅
Subscriber<String> subscriber = new Subscriber<String>() { @Override public void onStart() { super.onStart(); System.out.print("start"); } @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { System.out.print("onNext-->"+s); }};
然后将被观察者 和 订阅建立起关系
observable.subscribe(subscriber);
这样 observable 发送一个事件 subscriber 就能够接收到事件 onStart事件默认都会调用的 这个函数就是在onNext()函数之前 做一些准备动作 上面的 onStart() 主动调用没有任何关系 默认都是第一个调用 其他方法都要显示调用 才能 调用 。onNext 可以多次调用 但是 onError onComplete只能调用一次 调用过这两个方法之后 再调用 onNext将不起作用 表示一系列事件的终结
同样Rxjava 也提供了 一些简单的函数 来简化Subscriber 的创建
Observable<String> observable = Observable.just("haha");
如果你不关心onComplete 和 onError函数 只关心onNext函数 那你就可以使用Action0 Action1。。Action9这个接口
Action1<String> action1 = new Action1<String>() { @Override public void call(String s) { System.out.print("-->"+s); }};
- RxJava 初识
- Rxjava 初识
- 初识RxJava
- 初识RxJava
- 初识RxJava
- 初识RxJava
- RxJava 初识
- 初识RxJava
- RxJava系列之一 初识Rxjava
- 初识RxJava(入门篇)
- RxJava学习一:初识
- 初识RxJava和Retrofit
- RxJava 系列之初识
- 初识RXJava+Retrofit
- RxJava学习(一),RxJava初识
- rxjava系列(一)-- 初识Rxjava
- Android——初识RxJava
- Retrofit笔记->结合Rxjava初识
- [Leetcode 123] Best Time to Buy and Sell Stock III
- React Native -- ListView的基本用法
- 解决IE8兼容性视图问题
- 业绩归因 绩效评估
- 登陆密码加密与验证
- 初识RxJava
- 普通打印机,双面打印技巧
- MySQL 处理重复数据
- Java中字符串及正则表达式简介
- java-jacob操作word,往word中动态插入各种文件
- HttpClient,HttpParser实现简易爬虫
- Pluecker coordinates普吕克坐标系介绍
- 十.scrapy项目 爬取主页http://cuiqingcai.com/获取所有url与title
- href属性