2016-09-02 2 views
2

Ich rufe eine URL mit Retrofit, und ich interessiere mich nicht für das Ergebnis. Gibt es die onNext-Methode überhaupt zu ignorieren?RxJava ignorieren onNext

Derzeit verwende ich:

getRetrofit().create(UserAPI.class) 
     .doSomething(a, b) 
     .subscribeOn(Schedulers.newThread()) 
     .subscribe(t -> {}, Handler::handlerError); 

Wie Sie sehen können, t -> {} nichts tun, und ich möchte es reduzieren mag:

getRetrofit().create(UserAPI.class) 
      .doSomething(a, b) 
      .subscribeOn(Schedulers.newThread()) 
      .subscribe(null, Handler::handlerError); 

aber bekommen den Fehler

java.lang.IllegalArgumentException: onNext can not be null 

Antwort

4

Anstelle von Observable können Sie Completable von Ihrem 012 zurückgebenSchnittstelle. Es dient genau dem gleichen Zweck, den Sie brauchen.

0

Ich glaube nicht, dass es eine Möglichkeit gibt, die onNext() Implementierung zu vermeiden, wenn Sie eine Observable abonnieren, wenn Sie auch Fehlerbehandlung haben möchten. Alternativ können Sie ein Observer erstellen und es in Ihren subscribe-Aufrufen wiederverwenden, aber Sie müssen immer noch das onNext() Verhalten implementieren.

Beispiel:

Observer errorObserver = Observers.create(t -> {}, Handler::handleError); 

getRetrofit().create(UserAPI.class) 
      .doSomething(a, b) 
      .subscribeOn(Schedulers.newThread()) 
      .subscribe(errorObserver); 
Verwandte Themen