Android:RxJava的使用

本文详细介绍了如何在Android中使用RxJava进行异步任务处理,包括创建Observable的各种方法如create、just等,以及Observer和Consumer类型的监听。还探讨了订阅事件的执行与取消,以及map、flatMap、filter等操作符的应用。同时,文章讲解了线程调度的概念,如subscribeOn和observeOn的作用,以及Schedulers的不同类型。最后提到了RxJava的Backpressure策略,防止事件缓存池溢出的问题。
摘要由CSDN通过智能技术生成

说明:

RxJava用于异步执行任务,跟创建子线程执行任务无本质区别,优点在于让代码看起来整洁优雅些,并不能减少代码量


一、加入jar包依赖(app下的build.gradle):

dependencies {
    ...
    compile 'io.reactivex.rxjava2:rxjava:2.+'
    compile 'io.reactivex.rxjava2:rxandroid:2.+'
}

二、创建Observable(发送数据):

1.通过create方法创建(需在subscribe方法中手动调用各个监听方法,<>可以为任意类型)

Observable<T> observable = Observable.create(new ObservableOnSubscribe<T>() {
    @Override
    public void subscribe(ObservableEmitter<T> e) throws Exception {
        /*
        需要手动调用各个监听方法
        */
        e.onNext(T);
        e.onComplete();
    }
});

2.通过just方法创建(自动按顺序调用各个监听方法,<>可以为任意类型)

Observable<T> observable = Observable.just(T);

3.通过fromIterable方法创建(根据传入的列表多次调用onNext方法,<>可以为任意类型)

List<T> list = new ArrayList<>();
list.add(T); //onNext方法会调用size次
Observable<T> observable = Observable.fromIterable(list);

4.通过defer方法创建(延时调用,<>可以为任意类型)

Observable<T> observable = Observable.defer(new Callable<ObservableSource<? extends T>>() {
    @Override
    public ObservableSource<? extends T> call() throws Exception {
        return Observable.just(T);
    }
});

5.通过interval方法创建(定时执行onNext方法,只能<Long>类型,onNext实参从0开始,每次+1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值