この記事は主に RxJava 2.x の新機能に関する関連情報を写真、テキスト、サンプルコードを通じて詳しく紹介しています。必要な方はぜひご覧ください。
RxJavaとは
Rxとは、非同期リアクティブプログラミングを意味し、本質はオブザーバーパターン、オブザーバーとサブスクライバーによる非同期リアクティブプログラミングです。
この記事では主に RxJava 2.x の新機能に関する関連情報を紹介します。以下では特に説明する必要はありません。詳細な紹介を見てみましょう。バックプレッシャーの分離
Flowable/Subscriber
Flowable.range(0,10) .subscribe(new Subscriber<Integer>() { Subscription sub; //当订阅后,会首先调用这个方法,其实就相当于onStart(), //传入的Subscription s参数可以用于请求数据或者取消订阅 @Override public void onSubscribe(Subscription s) { Log.w("TAG","onsubscribe start"); sub=s; sub.request(1); Log.w("TAG","onsubscribe end"); } @Override public void onNext(Integer o) { Log.w("TAG","onNext--->"+o); sub.request(1); } @Override public void onError(Throwable t) { t.printStackTrace(); } @Override public void onComplete() { Log.w("TAG","onComplete"); } });
出力:
onsubscribe start onNext--->0 onNext--->1 onNext--->2 ... onNext--->10 onComplete onsubscribe end
これメソッドを呼び出す前に初期化作業を行います。subscription.request(n)
方法的时候,不等onSubscribe()
中后面的代码执行,就会立刻执行到onNext方法,因此,如果你在onNext方法中使用到需要初始化的类时,应当尽量在subscription.request(n)
別の作成メソッド
Flowable.create(new FlowableOnSubscribe<Integer>() { @Override public void subscribe(FlowableEmitter<Integer> e) throws Exception { e.onNext(1); e.onNext(2); e.onNext(3); e.onNext(4); e.onComplete(); } } //需要指定背压策略 , BackpressureStrategy.BUFFER);
その他のオブザーバー パターン
//判断是否登陆 Maybe.just(isLogin()) //可能涉及到IO操作,放在子线程 .subscribeOn(Schedulers.newThread()) //取回结果传到主线程 .observeOn(AndroidSchedulers.mainThread()) .subscribe(new MaybeObserver<Boolean>() { @Override public void onSubscribe(Disposable d) { } @Override public void onSuccess(Boolean value) { if(value){ ... }else{ ... } } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });
event の結果 (true または false) のみが必要な場合は、このオブザーバー モードを使用できます
Action1—— –Actionreference
概要
以上がRxJava 2.x の新機能を要約したグラフィックとテキストの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。