日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

RxJava 基础的使用

發布時間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RxJava 基础的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習地址:?

github wiki 學習地址

ReactiveX 操作符學習地址

RxJava是ReactiveX(反應性擴展)的Java VM實現:一個用于通過使用可觀察的序列組成異步和基于事件的程序的庫。

RxJava 是基于觀察者模式? 里面有

Observable(被觀察者)--->用來產生事件的

Observer(觀察者)---> 接受事件并作出響應

Subscribe(訂閱) --->連接 被觀察者和觀察者

現在呢Rxjava 到3.0 了, 使用首先 引入庫

  implementation "io.reactivex.rxjava3:rxjava:3.0.0-RC5"implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'

1? 引入庫之后創建被觀察者 ------->產生事件

 // 1. 創建被觀察者 Observable 對象Observable<String> observable =Observable.create(new ObservableOnSubscribe<String>() {@Overridepublic void subscribe(ObservableEmitter<String> emitter) {emitter.onNext("哈嘍! Rxjava");emitter.onNext("嗨! Rxjava");emitter.onNext("喂! Rxjava");emitter.onComplete();}});

2 創建觀察者 --------> 接受事件并作出響應

  //創建觀察者 (Observer )并 定義響應事件的行為Observer<String> observer = new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {Log.d("-----rxjava", "開始采用subscribe連接");}@Overridepublic void onNext(String value) {Log.d("-----rxjava", "對Next事件作出響應:" + value);}@Overridepublic void onError(Throwable e) {Log.d("-----rxjava", "對Error事件作出響應" + e);}@Overridepublic void onComplete() {Log.d("-----rxjava", "對onComplete事件作出響應:RxJava認識完成");}};

3?連接 被觀察者和觀察者

 //通過訂閱(Subscribe)連接觀察者和被觀察者observable.subscribe(observer);

整體的實現為-------------以一個button 點擊事件為例

  findViewById(R.id.rx_basic).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// 1. 創建被觀察者 Observable 對象Observable<String> observable =Observable.create(new ObservableOnSubscribe<String>() {@Overridepublic void subscribe(ObservableEmitter<String> emitter) {emitter.onNext("哈嘍! Rxjava");emitter.onNext("嗨! Rxjava");emitter.onNext("喂! Rxjava");emitter.onComplete();}});//創建觀察者 (Observer )并 定義響應事件的行為Observer<String> observer = new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {Log.d("-----rxjava", "開始采用subscribe連接");}@Overridepublic void onNext(String value) {Log.d("-----rxjava", "對Next事件作出響應:" + value);}@Overridepublic void onError(Throwable e) {Log.d("-----rxjava", "對Error事件作出響應" + e);}@Overridepublic void onComplete() {Log.d("-----rxjava", "對onComplete事件作出響應:RxJava認識完成");}};//通過訂閱(Subscribe)連接觀察者和被觀察者observable.subscribe(observer);}});

打印結果

上將就是最基礎的Rxjava 創建

?

我們常說RxJava 是基于事件流的鏈式調用 下面寫一下鏈接的 ,上面的案例是為了更好的理解rxjava

  //基于事件流的鏈式調用findViewById(R.id.rx_link_basic).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//創建被觀察者 & 生產事件//create()作用是創建被觀察者對象,是最基本的操作符,只有創建Observable.create(new ObservableOnSubscribe<String>() {@Overridepublic void subscribe(ObservableEmitter<String> emitter) {emitter.onNext("哈嘍! Rxjava");emitter.onNext("嗨! Rxjava");emitter.onNext("喂! Rxjava");emitter.onComplete();}//subscribe訂閱者連接觀察者和被觀察者//Observer 創建觀察者 & 定義響應事件的行為}).subscribe(new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {Log.d("-----rxjava", "開始采用subscribe連接");}@Overridepublic void onNext(String s) {Log.d("-----rxjava", "對Next事件作出響應:" + s);}@Overridepublic void onError(Throwable e) {Log.d("-----rxjava", "對Error事件作出響應" + e);}@Overridepublic void onComplete(){Log.d("-----rxjava", "對onComplete事件作出響應:RxJava認識完成");}});}});

打印結果

以上就是Rxjava的認識, 可能你平時會看到 時候沒有使用create() 被觀察者也創建了

這里就要說一下操作符

create() 這個是操作符最基本的操作符,只有創建被觀察者功能

其他的操作符,不僅有其他的功能 還有創建的功能 ,比如just()作用不僅能創建還能發射對象

下面在看一個例子

  //just()作用不僅能創建還能發射對象等會通過案例對比下//just 的特點:1 創建被觀察者對象 2 發送事件Observable.just("哈嘍 Rxjava","嗨 Rxjava","喂! Rxjava").subscribe(new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {Log.d("-----rxjava", "開始采用subscribe連接");}@Overridepublic void onNext(String s) {Log.d("-----rxjava", "對Next事件作出響應:" + s);}@Overridepublic void onError(Throwable e) {Log.d("-----rxjava", "對Error事件作出響應" + e);}@Overridepublic void onComplete() {Log.d("-----rxjava", "對onComplete事件作出響應:RxJava認識完成");}});

?有時候可能只要結果的時候就可以使用如下,直接返回結果

 Observable.just("哈嘍 Rxjava","嗨 Rxjava","喂! Rxjava").subscribe(new Consumer<String>() {@Overridepublic void accept(String s) {Log.d("-----rxjava", s);}});

下一邊說一下RxJava 取消訂閱.

?

?

?

總結

以上是生活随笔為你收集整理的RxJava 基础的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。