1.Disposable mDisposable:这是观察者
2.mDisposable.dispose();取消订阅关系
3.mDisposable.isDisposed()
判断是不是非订阅状态,如果当前是非订阅状态,则返回true,如果当前是订阅状态,则返回false
4. 监听取消订阅关系的函数
doOnDispose(new Action() { @Override public void run() throws Exception { Log.d(TAG, "取消订阅了test4Disposegr"); } })
protected void test4(){
Observable<Integer> observable=Observable.create(new ObservableOnSubscribe<Integer>() {
@Override
public void subscribe(final ObservableEmitter<Integer> e) throws Exception {
callBack = new CallBack() {
@Override
public void test(String msg) {
Log.d(TAG, "test4发射数据了");
e.onNext(100);
}
};
e.setCancellable(new Cancellable() {
@Override
public void cancel() throws Exception {
Log.d(TAG, "test4取消订阅了");
}
});
e.onComplete();
}
});
mDisposable = observable.
doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
Log.d(TAG, "订阅来了test4");
}
}).
doOnDispose(new Action() {
@Override
public void run() throws Exception {
Log.d(TAG, "取消订阅了test4");
}
})
.doOnTerminate(new Action() {
@Override
public void run() throws Exception {
Log.d(TAG, "doOnTerminate 执行了");
}
})
.subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) throws Exception {
//这里接收数据项
Log.d(TAG, "test4收到数据了:"+integer);
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
//这里接收onError
}
}, new Action() {
@Override
public void run() throws Exception {
//这里接收onComplete。
}
});
}