protected <T> void subscribe(Observable<T> observable, Observer<T> observer) { observable.subscribeOn(Schedulers.newThread()) .toSingle() .observeOn(AndroidSchedulers.mainThread()) .subscribe(observer); } }
@Override public Single<Void> call(Exchange exchange, RoutingKey routingKey, AMQP.BasicProperties basicProperties, Payload payload) { return Single.<Void>create(subscriber -> schedulePublish(exchange, routingKey, basicProperties, payload, 1, 0, subscriber)) .observeOn(observeOnScheduler); }
private void updateList() { mProgressBar.setVisibility(View.VISIBLE); DbUtil.getPerAppListApps(this) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new SingleSubscriber<List<AppInfo>>() { @Override public void onSuccess(List<AppInfo> newList) { mFilterList = newList; mProgressBar.setVisibility(View.GONE); //TODO: Calling this while the view hasn't been laid out causes jank mAdapter.notifyDataSetChanged(); invalidateEmpty(); } @Override public void onError(Throwable error) { } }); }
public LiveData<List<Movie>> getMovies() { Single<Response<SearchResult>> resultObservable = movieApi.getMovieList(); resultObservable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(searchResult -> { if (!searchResult.isSuccessful()) { Log.i("Repository", "not respond"); } else { movieDatabaseHelper.save(searchResult.body().getSearch()); } }, throwable -> Log.i("Repository", throwable.getMessage())); return movieDatabaseHelper.getAll(); } }
public static <T> void request(Single<Response<T>> single, ApiListener<T> listener) { single.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe((Response<T> tResponse) -> { if (tResponse.isSuccessful()) { listener.onSuccess(tResponse.body()); } else { listener.onServerError(tResponse.errorBody().toString()); } }, listener::onError); }
private void fetchOverpassLimit(final Double lat, final Double lon) { if (overpassSubscription != null) return; //Active request to Overpass has not responded yet String data = "[out:json];way(around:" + RADIUS + "," + lat + "," + lon + ")[\"highway\"][\"maxspeed\"];out;"; overpassSubscription = overpassService.getLimit(data) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new SingleSubscriber<OverpassResponse>() { @Override public void onSuccess(OverpassResponse overpassResponse) { overpassSubscription = null; overpassManager.handleResponse(overpassResponse, lat, lon); } @Override public void onError(Throwable error) { overpassSubscription = null; //Error was already logged in OverpassInterceptor } }); }
public void getCats(List<Cat> cats) { checkViewAttached(); mSubscription = mDataManager.getCats(cats) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(new SingleSubscriber<List<Cat>>() { @Override public void onSuccess(List<Cat> cats) { getMvpView().showCats(cats); } @Override public void onError(Throwable error) { getMvpView().showCatsError(); Timber.e(error, "There was an error loading the cats!"); } }); }
public void searchCats(List<Cat> cats) { checkViewAttached(); mSubscription = mDataManager.getCats(cats) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(new SingleSubscriber<List<Cat>>() { @Override public void onSuccess(List<Cat> cats) { getMvpView().showCats(cats); } @Override public void onError(Throwable error) { getMvpView().showCatsError(); Timber.e(error, "There was an error loading the cats!"); } }); }
}).observeOn(AndroidSchedulers.mainThread()) .subscribe(new SingleSubscriber<List<AppInfo>>() { @Override
@Test public void test() throws Exception { Single.fromCallable(() -> 42) .subscribeOn(Schedulers.io()) .observeOn(Schedulers.computation()) .doOnSubscribe(() -> System.out.println("subscribed")) .doOnUnsubscribe(() -> System.out.println("unsubscribed")) .subscribe(integer -> System.out.println("got result")); Thread.sleep(1000); } }
.observeOn(AndroidSchedulers.mainThread()) .subscribe(new SingleSubscriber<HereMapsResponse>() { @Override
@Test public void sample_6() throws Exception { Single<String> single = Single.just("Hello, world!"); single.subscribe(System.out::println); Single<Instant> error = Single.error(new RuntimeException("Opps!")); error .observeOn(Schedulers.io()) .subscribe( System.out::println, Throwable::printStackTrace ); }
single.observeOn(observeOnScheduler);