之前在微博看到有关RxJava的内容,知道在Android开发中变得越来越流行了,所以找了相关的博客来看看。其实有初略地看了一点,但是感觉比较难理解,还是先写一个小Demo来熟悉一下。
关于RxJava的有关介绍可以看看这个博客http://blog.csdn.net/lzyzsd/article/details/41833541
下面是我摘录的一些有关于RxJava的介绍:RxJava最核心的两个东西是Observable(被观察者,事件源)和Subscribers(观察者)。Observable发出一系列的事件,Subscribers处理这些事件,但是subscriber要订阅对observable进行订阅。
一个Observable可以发出一个或者多个事件,直到结束或者出错。每发出一个事件,他会调用他的Subscriber的OnNext()的方法,最后调用Subscriber.OnComplete()或者Subscriber.OnError()作为结束。
Rxjava的看起来很像设计模式中的观察者模式,但是有一点明显不同,那就是如果一个Observerble没有任何的的Subscriber,那么这个Observable是不会发出任何事件的。
接下来便是我写的一个和弱智的HelloWorld的小Demo了,虽然很弱智,就是用TextView输出Observable发出来的字符串,但是还是把整个过程给理解了。
先是在build.gradle中引入依赖
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
//下面两个即为引入的依赖
compile 'io.reactivex:rxjava:1.0.9'
compile 'io.reactivex:rxandroid:0.24.0'
}
映入依赖后就可以愉快地编写代码了,首先先创建Observable对象
//Observable部分,被观察者部分
Observable<String> myObservable=Observable.create(new
Observable.OnSubscribe<String>(){
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("John");
subscriber.onCompleted();
}
});
然后创建Subscriber对象响应Observable所发出的事件。上面的Observable所发出的事件为John。
//Subscriber部分,观察者部分
Subscriber<String> mySubscriber=new Subscriber<String>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String s) {
textView.setText(s);
}
};
最重要的是,将Observable和Subscriber相关联,即完成subscriber和observable的订阅
//将观察者和被观察者相关联,完成subscriber对observable的订阅
myObservable.subscribe(mySubscriber);
用手机对Android程序进行调试 输出John
即完成了HelloWorld的Rxjava的小Demo。