我有一个关于如何取消订阅可观察量的问题。我有两个代码,我不确定哪一个更好。
实施例1 – >流完成后取消订阅订阅者:
Subscriber subscriber = new Subscriber() {
@Override
public void onCompleted() {
progressdialog.dissmiss();
unsubscribe();
}
@Override
public void onError(Throwable e) {
progressdialog.dissmiss();
}
@Override
public void onNext(String s) {
// do something with data
}
}
实施例2 – >一旦活动被销毁,取消订阅订阅:
private void test(){
Subscriber subscriber = new Subscriber() {
@Override
public void onCompleted() {
progressdialog.dissmiss();
}
@Override
public void onError(Throwable e) {
progressdialog.dissmiss();
}
@Override
public void onNext(String s) {
// do something with data
}
};
subscription = BackendRequest.login(loginRequest)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber);
compositeSubscription.add(subscription);
}
@Override
protected void onDestroy() {
super.onDestroy();
this.subscription.unsubscribe();
}
我必须提到我的observable只会发出一次,活动不应该等待来自Observable的更多调用。
哪一个更好?
提前致谢