Articles of rx android

Почему RxJava с доработкой на Android doOnError () не работает, но Subscriber onError делает

Может кто-нибудь объяснить мне, почему код выглядит так: networApi.getList() .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .doOnError(throwable -> { throwable.getMessage(); }) .doOnNext(list -> { coursesView.populateRecyclerView(list); courseList = (List<Course>) courses; }).subscribe(); Если в DoOnError нет Интернета, он добавляет его дальше, поэтому приложение не работает, но код выглядит следующим образом: networkApi.getList() .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<List<? extends Course>>() { @Override public void onCompleted() […]

Использование RxJava для извлечения объекта, преобразования содержащего списка и использования списка

Проблема высокого уровня, которую я пытаюсь решить, заключается в преобразовании списка объектов Foo содержащихся в извлеченном FooContainer (Observable), в список объектов FooBar с использованием RxJava. Моя (запутанная) попытка: fooContainerObservable .map(container -> container.getFooList()) .flatMap(foo -> transformFooToFooBar(foo)) .collect( /* What do I do here? Is collect the correct thing? Should I be using lift? */) .subscribe(fooBarList -> […]

Как обновить интерфейс от Android-сервиса, используя RxJava / RxAndroid

У меня есть служба Bound, которая отвечает за загрузку файлов и, следовательно, знает статус загрузки / прогресс. И пользовательский интерфейс (фрагмент или действие) должен показывать / обновлять загрузку с услуги. На самом деле я считаю, что общий способ – использовать BroadcastReciever или CallBack из Activity. Но я где-то слышал о том, как использовать RxJava (ReactiveX […]

Дооснащение + RxJava не кэширует ответы, подозрительные заголовки ответов

Я пытаюсь настроить кеш с Retrofit 1.9.0 OkHtttp 2.5.0 и OkHtttp 2.5.0 . Вот как я предоставляю OkHttpClient для моего RestAdapter : @Provides @Singleton public OkHttpClient provideOkHttpClient() { OkHttpClient okHttpClient = new OkHttpClient(); okHttpClient.setConnectTimeout(TIMEOUT_IN_SECONDS, TimeUnit.SECONDS); okHttpClient.setReadTimeout(TIMEOUT_IN_SECONDS, TimeUnit.SECONDS); okHttpClient.setWriteTimeout(TIMEOUT_IN_SECONDS, TimeUnit.SECONDS); File cacheDir = new File(context.getCacheDir(), "http"); final Cache cache = new Cache(cacheDir, DISK_CACHE_SIZE_IN_BYTES); okHttpClient.setCache(cache); okHttpClient.interceptors().add(new Interceptor() […]

Android MVP с RxAndroid + Retrofit

Недавно я начал много читать о MVP, и я хочу с этим заниматься своими проектами. Однако я не могу правильно понять, где должен быть код Rx + Retrofit? Я думаю, что это должно быть в слое модели через Interactors, но все же может кто-то рассказать об этом немного? Также что происходит с обратным вызовом RX? […]

Обновление фрагмента из Activity с помощью Rxjava Android

У меня простой пример использования: Activity1 создать фрагмент1 Фрагмент1 после создания уведомляет о действии, что он создан, и обновляет его виды активности1. Activity1 после получения уведомления об обновлении views1. Я использую компоненты rxandroid, sublibrary rxlifecycle и android, но я все еще rxlifecycle в фазе обучения, в stackoverflow не было даже тега rx-lifecycle , поэтому я […]

RxJava2 в CursorLoader's onLoadFinished callback

Для получения данных из базы данных я использую CursorLoader в приложении. Когда onLoadFinished() callback onLoadFinished() вызывает логику приложения, он преобразует объект Cursor в List объектов в рамках требований бизнес-модели. Это преобразование (тяжелая операция) занимает некоторое время, если имеется много данных. Это замедляет поток пользовательского интерфейса. Я попытался начать преобразование в не-UI- RxJava2 используя RxJava2 проходящий […]

Как обрабатывать исключения в map () в Observable в RxJava

Я хочу сделать это: Observable.just(bitmap) .map(new Func1<Bitmap, File>() { @Override public File call(Bitmap photoBitmap) { //File creation throws IOException, //I just want it to hit the onError() inside subscribe() File photoFile = new File(App.getAppContext().getCacheDir(), "userprofilepic_temp.jpg"); if(photoFile.isFile()) {//delete the file first if it exists otherwise the new file won't be created photoFile.delete(); } photoFile.createNewFile(); //saves the […]

Когда отменить подписку на подписку

У меня вопрос о том, как отменить подписку на наблюдаемые. У меня есть два кода, и я не уверен, что лучше. Пример 1 -> Отменить подписку подписчика после завершения потока: Subscriber<String> subscriber = new Subscriber<String>() { @Override public void onCompleted() { progressdialog.dissmiss(); unsubscribe(); } @Override public void onError(Throwable e) { progressdialog.dissmiss(); } @Override public void […]

Rx Java mergeDelayError не работает должным образом

Я использую приложение RxJava и Android с RxAndroid. Я использую mergeDelayError для объединения двух сетевых сетевых подключений в один наблюдаемый, который будет обрабатывать испускаемые элементы, если он испускает один, а также ошибку, если она есть. Это не работает, и он только активирует действие onError, когда либо встречается ошибка. Теперь, чтобы проверить это, я перешел на […]