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;
}
});
}