函数响应式编程
函数响应式编程是一种编程范式,可以极大的简化项目,特别是处理嵌套回调的异步时间、复杂的列表过滤和变换或者时间的相关问题.而RxJava就是函数响应式编程的重要框架。
RxJava简述
我们在Github上搜索RxJava时,我们会发现,显示的是ReactiveX/RxJava,因为RxJava是ReactiveX的一种Java的一种实现,ReactiveX的全名是Reactive Extensions,简写为Rx. Github对RxJava的描述为" a library for composing asynchronous and event-based programs using observable sequences for the Java VM.",开发者可以用Observables表示异步数据流,用Schedulers参数化异步数据流的并发处理,其实RxJava就是一个实现异步操作的库。
RxJava的好处
我们原来在做异步操作时,都是用Android的AsyncTask和Handler,这样会使得项目越来越复杂,而RxJava却能够保持清晰的逻辑。RxJava原理是创建一个Observable,使用各种操作符来建立起链式操作,最后发射给Subscruber处理.(RxJava有4个角色:Observable、Observer、Subscruber、subject)。
RxJava的基本实现
在项目Gradle:
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.1.0'
Rxjava基本用法:
1.创建Observer(观察者):
//创建一个观察者Observer
Observer<String> observer=new Observer<String>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e(TAG,"onSubscribe"+d);
}
@Override
public void onNext(@NonNull String s) {
Log.e(TAG,"onNext"+s);
}
@Override
public void onError(@NonNull Throwable e) {
Log.e(TAG,"onError");
}
@Override
public void onComplete() {
Log.e(TAG,"onComplete");
}
};
上面的四个方法是必须要完成的,onError是时间异常。onNext表示普通的事件,将要处理的事件添加到时间队列中。 onComplete表示事件的完结。
2.创建Observable(被观察者)
//创建被观察者,Observable
Observable<String> observable=Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(@NonNull ObservableEmitter<String> e) throws Exception {
//这是将时间添加到队列的其中一种方式
Log.e(TAG,"发送");
e.onNext("hello"); //发送的字符串
e.onComplete();//发送完成
// subscriber.onComplete();
}
});
将事件添加到任务队列有三种方法,上面是第一种。第二种是通过just方法来添加代码如下:
observable=Observable.just("hello");
第三种方式from方法来实现,代码如下所示:
String [] s={"hello"};
observable=Observable.fromArray(s);
3.Subscribe(订阅)
observable.subscribe(observer);
就介绍到这,我会持续更新的...希望大家关注,一起进步!
网友评论