我有一个关于如何取消订阅observable的问题。我有两个代码,我不确定哪一个更好。何时取消订阅
例1 - >退订用户一旦流已完成:
Subscriber<String> subscriber = new Subscriber<String>() {
@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<String> subscriber = new Subscriber<String>() {
@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.subscribeOn(Schedulers.newThread())。observeOn(AndroidSchedulers.mainThread())。subscribe(subscriber)”不工作,只有第一套。有任何想法吗? – lawonga