Wenn Sie ein Abonnement abbestellen möchten
Ich habe eine Frage zum Abbestellen einer Observable. Ich habe zwei Codes und bin mir nicht sicher, welcher besser ist.
Beispiel 1 -> Abonnent abbestellen, sobald der Stream beendet ist:
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
}
}
Beispiel 2 -> Abonnement kündigen, sobald die Aktivität zerstört ist:
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();
}
Ich muss erwähnen, dass meine Observablen nur einmal gesendet werden. Die Aktivität sollte nicht auf weitere Aufrufe von Observable warten.
Welches ist besser
Danke im Vorau