>  기사  >  Java  >  RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

黄舟
黄舟원래의
2017-03-31 10:55:571336검색

이 글은 RxJava 2.x의 새로운 기능에 대한 관련 정보를 주로 소개합니다. 이 글은 그림, 텍스트, 샘플 코드를 통해 매우 자세하게 소개되어 있어 필요한 모든 사람이 살펴볼 수 있습니다. 아래에.

RxJava란

Rx는 비동기 반응형 프로그래밍이며, 본질은 관찰자 패턴, 관찰자와 구독자가 있는 비동기 반응형 프로그래밍.

이 글은 주로 RxJava 2.x의 새로운 기능에 대한 관련 정보를 소개합니다. 아래에서 할 말은 많지 않으나, 자세한 소개를 살펴보겠습니다.

배압 분리

RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

플로우블/구독자

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);
다른 관찰자 모드


Single/SingleObserver
  • Completable/CompletableObserver
  • Maybe/MaybeObserver

  • 위 3개는 비슷합니다. 비교 전송에 적합합니다. 단일 데이터로 대용량 데이터 전송에는 적합하지 않습니다.
  • //判断是否登陆
    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() {
      }
     });
사실 이 옵저버 모드는 대용량 데이터를 전송할 때 사용하는 것이 아니라, 단일 데이터를 전송할 때 사용하는 모드입니다. 원하는 것만 원하는

이벤트

의 결과(참 또는 거짓)가 발생하면 이 관찰자 모드

Action

Rx1.0을 사용할 수 있습니다. Rx2 .0Action1——–Action

Action1——–Consumer

Action2——–BiConsumer

이후의 모든 Action은 제거되고 ActionN만 남습니다

참조


RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개

요약

위 내용은 RxJava 2.x의 새로운 기능을 요약한 그래픽 및 텍스트 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.