Rxjava1.x的基本使用我们已经了解了,不是很清楚的同学可以参考我的文章:
Rxjava 1.x初识:http://blog.csdn.net/burn_yourself/article/details/72136285
今天,来讲讲 Rxjava是怎么取消的,其实很简单
Observable.subscribe()方法可以返回一个Subscription的对象,即我们每次订阅都会返回
下面给出一个调用的例子:
Subscription subscription= Observable.create(new Observable.OnSubscribe<String>(){
@Override
public void call(Subscriber<? super String> subscriber){
subscriber.onNext("hi");
subscriber.onCompleted();
}
}).subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String s) {
LogUtil.e("=======s===="+s);
}
});
LogUtil.e("====state 1======="+subscription.isUnsubscribed());
if(!subscription.isUnsubscribed()){
subscription.unsubscribe();//取消订阅
}
LogUtil.e("=====state 2===="+subscription.isUnsubscribed());
需要注意的是,一般在取消订阅之前都要做一个是否已取消过的判断。