RxJava2的API入门使用手记

RxJava的主要使用场景是Android,本片文章只关注其Java逻辑,限于应用层。maven项目导入依赖 =》pom.xml<dependency> <groupId>io.reactivex.rxjava2</groupId> <artifactId>rxjava</artifactId> <...
摘要由CSDN通过智能技术生成

RxJava的主要使用场景是Android,本片文章只关注其Java逻辑,限于应用层。

maven项目导入依赖 =》pom.xml

<dependency>
    <groupId>io.reactivex.rxjava2</groupId>
    <artifactId>rxjava</artifactId>
    <version>2.0.3</version>
</dependency>

RxJava2主要有以下需要注意的5个元素:

  1. Observable(被观察者、通过其创建可观察序列:create()方法、通过subscribe注册一个观察者)
  2. Observer(观察者接受数据,subscribe方法参数)
  3. Disposable(接口:dispose()方法和isDisposed()方法,用于取消订阅和获取当前订阅状态)
  4. ObservableOnSubscribe(当订阅时触发调用,向订阅者发送数据用的接口)
  5. Emitter(即,onNext()、onError()、onComplete)

任务调度器的几个使用场景

Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {
    @Override
    public void subscribe(ObservableEmitter<String> observableEmitter) throws Exception {
        observableEmitter.onNext("Hello");
        observableEmitter.onComplete();
    }
}).subscribeOn(Schedulers.io());
public static Scheduler computation() {return RxJavaPlugins.onComputationScheduler(COMPUTATION);}

public static Scheduler io() {return RxJavaPlugins.onIoScheduler(IO);}

public static Scheduler trampoline() {return TRAMPOLINE;}

public static Scheduler newThread() {return RxJavaPlugins.onNewThreadScheduler(NEW_THREAD);}

public static Scheduler single() {return RxJavaPlugins.onSingleScheduler(SINGLE);}

1. 例子:

// 创建observable
Observable observable = Observable.create(new ObservableOnSubscribe<String>() {
    @Override
    public void subscribe(ObservableEmitter<String> observableEmitter) throws Exception {
        observableEmitter.onNext("I");
        observableEmitter.onNext("Love");
        observableEmitter.onComplete();
    }
});
// 线程变换
observable.subscribeOn(Schedulers.io());
// 创建Observer
Observer observer = new Observer<String>() {
    @Override
    public void onSubscribe(Disposable disposable) { System.out.println("订阅状态:"+disposable.isDisposed()); }
    @Override
    public void onNext(String s) { System.out.println("onNext执行逻辑:"+ s); }
    @Override
    public void onError(Throwable throwable) { System.out.println("onError"); }
    @Override
    public void onComplete() { System.out.println("onComplete"); }
};
// 订阅
observable.subscribe(observer);

//执行结果:
//订阅状态:false
//onNext执行逻辑:I
//onNext执行逻辑:Love 
//onComplete

2.API

=====================================================================

初始 Observable observable = Observable.create(new ObservableOnSubscribe<String>() {
    @Override
    public void subscribe(ObservableEmitter<String> observableEmitter) throws Exception {
        observableEmitter.onNext("I");
        observableEmitter.onComplete();
    }
});
observable.subscribeOn(Schedulers.io());
Observer observer = new Observer<String>() {
    @Override
    public void onSubscribe(Disposable disposable) { System.out.println("订阅状态:"+disposable.isDisposed()); }
    @Override
    public void onNext(String s) { System.out.println("onNext执行逻辑:"+ s); }
    @Override
    public void onError(Throwable throwable) { System.out.println("onError"); }
    @Override
    public void onComplete() { System.out.println("onComplete"); }
};
create Observable observable = Observable.create(new ObservableOnSubscribe<String>() {
    @Override
    public void subscribe(ObservableEmitter<String> observableEmitter) throws Exception {
        observableEmitter.onNext("I");
        observableEmitter.onComplete();
    }
});
just // 发送的事件不超过10个
observable.just("1","2","3").subscribe(observer);
fromArray // 发送事件超过10个,或者传入数组
observable.fromArray("1","......10").subscribe(observer);
String array[] = {"1","2","3"};
observable.fromArray(array).subscribe(observer);
fromCallable  
fromFuture  
fromIterable // 用于可以迭代的对象 如List
List<String> list = new ArrayList<>()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值