说明:
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)