码迷,mamicode.com
首页 > 其他好文 > 详细

RX(一)

时间:2017-01-07 10:59:44      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:androi   super   next   i++   模式   string   throw   depend   eof   

 建议,先去了解观察者模式。

前期工作:引入RX的包

build.gradle脚本里面的

dependencies{
compile ‘io.reactivex:rxjava:1.1.0‘
compile ‘io.reactivex:rxandroid:1.1.0‘


需要用到的类 Observable Subscriber

第一种写法:
1.创建被观察者
Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
if (!subscriber.isUnsubscribed()) {
subscriber.onNext("hello");
subscriber.onNext("hi");
subscriber.onNext("world");
subscriber.onNext("ok");
subscriber.onCompleted(); // 结尾
}
}
});
2. 定义观察者
Subscriber<String> subscriber = new Subscriber<String>() {
@Override
public void onCompleted() {
Log.e(TAG, "onCompleted");
}

@Override
public void onError(Throwable e) {
Log.e(TAG, "onError");
}

@Override
public void onNext(String str) {
Log.e(TAG, str);
}
};
3.关联被观察者
observable.subscribe(subscriber);
第二种写法:
Observable.create(new Observable.OnSubscribe<Integer>() {
@Override
public void call(Subscriber<? super Integer> subscriber) {

if (!subscriber.isUnsubscribed()) {
for (int i = 0; i < 10; i++) {
subscriber.onNext(i);
}
subscriber.onCompleted();
}
}
}).subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
Log.e(TAG, "onCompleted");
}

@Override
public void onError(Throwable e) {
Log.e(TAG, "onError");
}

@Override
public void onNext(Integer integer) {
Log.e(TAG, String.valueOf(integer));
}
});
}



RX(一)

标签:androi   super   next   i++   模式   string   throw   depend   eof   

原文地址:http://www.cnblogs.com/yiyexuechen/p/6258791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!