国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

RxJava入門指南及其在Android開發(fā)中的使用示例

2019-12-12 06:11:03
字體:
供稿:網(wǎng)友

RxJava的GitHub主頁,部署部分就沒什么好說的了~
https://github.com/ReactiveX/RxJava

基礎
RxJava最核心的兩個東西是Observables(被觀察者,事件源)和Subscribers(觀察者)。Observables發(fā)出一系列事件,Subscribers處理這些事件。這里的事件可以是任何你感興趣的東西(觸摸事件,web接口調(diào)用返回的數(shù)據(jù)。。。)

一個Observable可以發(fā)出零個或者多個事件,知道結(jié)束或者出錯。每發(fā)出一個事件,就會調(diào)用它的Subscriber的onNext方法,最后調(diào)用Subscriber.onNext()或者Subscriber.onError()結(jié)束。

Rxjava的看起來很想設計模式中的觀察者模式,但是有一點明顯不同,那就是如果一個Observerble沒有任何的的Subscriber,那么這個Observable是不會發(fā)出任何事件的。

Hello World
創(chuàng)建一個Observable對象很簡單,直接調(diào)用Observable.create即可

Observable<String> myObservable = Observable.create(   new Observable.OnSubscribe<String>() {     @Override     public void call(Subscriber<? super String> sub) {       sub.onNext("Hello, world!");       sub.onCompleted();     }   } ); 


這里定義的Observable對象僅僅發(fā)出一個Hello World字符串,然后就結(jié)束了。接著我們創(chuàng)建一個Subscriber來處理Observable對象發(fā)出的字符串。

Subscriber<String> mySubscriber = new Subscriber<String>() {   @Override   public void onNext(String s) { System.out.println(s); }    @Override   public void onCompleted() { }    @Override   public void onError(Throwable e) { } }; 

這里subscriber僅僅就是打印observable發(fā)出的字符串。通過subscribe函數(shù)就可以將我們定義的myObservable對象和mySubscriber對象關聯(lián)起來,這樣就完成了subscriber對observable的訂閱。

myObservable.subscribe(mySubscriber); 

一旦mySubscriber訂閱了myObservable,myObservable就是調(diào)用mySubscriber對象的onNext和onComplete方法,mySubscriber就會打印出Hello World!

更簡潔的代碼
是不是覺得僅僅為了打印一個hello world要寫這么多代碼太

主站蜘蛛池模板: 仪陇县| 卢湾区| 冕宁县| 韶关市| 贡山| 呼和浩特市| 蒙城县| 通许县| 湖北省| 井冈山市| 福安市| 浮山县| 沐川县| 河间市| 濉溪县| 城步| 廉江市| 昔阳县| 鹿邑县| 延川县| 丁青县| 巴马| 三穗县| 邵阳市| 汝城县| 辉南县| 友谊县| 连山| 平原县| 上林县| 曲阜市| 余姚市| 泽普县| 龙口市| 稻城县| 天气| 凌云县| 章丘市| 乾安县| 泰宁县| 德钦县|