Cuándo cancelar una suscripción
Tengo una pregunta sobre cómo cancelar la suscripción de un observable. Tengo dos códigos y no estoy seguro de cuál es mejor.
Ejemplo 1 -> Darse de baja del suscriptor una vez que la transmisión haya finalizado:
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
}
}
Ejemplo 2 -> Anular la suscripción una vez que se destruye la actividad:
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();
}
Tengo que mencionar que mis observables solo se emitirán una vez, la actividad no debe esperar más llamadas del Observable.
¿Cuál es mejor?
Gracias por adelantado