2015-02-25 11 views
8

Chcę sprawdzić, czy telefon komórkowy jest podłączony do Internetu przed wywołaniem mojej usługi modernizacji rx. Jeśli nie jest połączony, chcę zwrócić fałszywą odpowiedź zawierającą błąd.Prawidłowy sposób obsługi sieci bez Retrofit i RX-java

Skończyłem z poniższym rozwiązaniem, używając defer(), ale myślę, że może być lepiej, wszelkie wskazówki?

private Observable<Response> checkNetwork(Observable<Response> retrofitService) { 
     return Observable.defer(new Func0<Observable<Response>>() { 
      @Override 
      public Observable<Response> call() { 
       if (!isOnline()) { 
        return Observable.just(Response.error(R.string.error_no_network_label))); 
       } 
       return retrofitService; 
      } 
     }); 
    } 

Odpowiedz

Powiązane problemy