Articles of rx java

Архитектура Android-приложений – RxJava

Я работаю над андроидным приложением (в основном, пытаюсь разобраться с использованием RxJava / Android). Это мои требования: Ведение постоянного и глобального состояния для зарегистрированного пользователя Всякий раз, когда изменяется состояние пользователя, соответственно обновляется представление. Я использую экземпляр User Singleton для поддержания глобального состояния и SharedPreferences для сохранения. Теперь я пытаюсь использовать RxAndroid для уведомления изменений […]

InterruptedIOException при переключении с mainThread () на io ()

У меня есть код, который сначала должен запускаться на AndroidSchedulers.mainThread() , затем должен выполнить HTTP-запрос, поэтому он должен запускаться на Schedulers.io() и обрабатывать результат в пользовательском интерфейсе, поэтому вернемся к AndroidSchedulers.mainThread() , Я получаю InterruptedIOException при переключении с AndroidSchedulers.mainThread() на Scheulers.io() . Вот какой код: Model model = getModel(); Completable.fromAction( new Action0() { public void […]

Как получить одноразовый объект для подписчиков в RxJava2

Это может быть глупый вопрос, но как я могу получить Disposable при подписке на объект наблюдения в RxJava 2.0? Например: observable.subscribeWith( behaviorSubject) Не возвращает Disposable ? Как отменить такую ​​подписку? Или еще один пример с CompositeDisposable : compositeDisposable.add( observable.subscribeWith( behaviorSubject) ) ) Это не компилируется, потому что subscribeWith( behaviorSubject ) не возвращает одноразовый. Как отказаться […]

Android retofit + rxjava, как обрабатывать динамический параметр запроса с помощью repeatwhen

Я использую retrofit + rxjava для обработки основного запроса http get. И запрос будет повторяться каждые 5 секунд. Repeatwhen точно соответствует требованию и который хорошо работает при условии, когда параметр запроса никогда не менялся. В моем тестовом случае параметр будет меняться при каждом запросе, а приведенный ниже код не работает. netInterface .postRequest(requestData) .repeatWhen(new Func1<Observable<? extends […]

Как использовать Rx для управления несколькими наблюдателями, чтобы сохранить только одно открытое соединение с сервисом?

В моем приложении некоторые действия получают информацию с сервера, и мне нужно убедиться, что соединение уже установлено, прежде чем пытаться извлечь данные. Я использую BehaviorSubject для уведомления подписчиков, когда соединение установлено, поэтому Activity может загружать данные. Проблема в том, что более одного действия в одном потоке имеют одинаковое поведение. В нашем API мы должны вызвать […]

Убедитесь, что метод вызывается в onNext из RxJava Subscriber

У меня есть следующий метод, который использует сервисный интерфейс Retrofit для извлечения некоторых данных из API, а затем взаимодействует с интерфейсом представления. @Override @VisibleForTesting public void fetchPhotos(@Nullable PhotosService service, @Nullable Scheduler subscribeOn) { view.showLoading(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(Constants.PLACEHOLDER_API_BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); if (service == null) service = retrofit.create(PhotosService.class); if (subscribeOn == null) subscribeOn […]

Почему Rxjava может вызвать утечку памяти

Я играю с rxjava и обнаружил, что существует риск утечки памяти, если подписка не завершена до того, как действие будет уничтожено, потому что «наблюдаемые сохраняют ссылку на контекст». Одна из демонстраций для такого случая приведена ниже: если подписка не отписана наDestroyed (источник: https://github.com/dlew/android-subscription-leaks/blob/master/app/src/main/java/ Net / danlew / rxsubscriptions / LeakingActivity.java ): @Override protected void onCreate(Bundle […]

Получите объект JSON один за другим из массива JSON на Android с помощью Retrofit и RxJava

Я использую retrofit, чтобы попасть в мою сеть api, которая возвращает массив json. Я делаю это, используя следующий код- Observable<MyJson[]> response = (Observable<MyJson[]>)mNetworkService.getReadyObserverable(mNetworkService.getNetworkServiceApi().getMyDataJsons(), MyJson.class, true, useCache); mAirlineSubscription = response.subscribe(new Observer<MyJson[]>() { @Override public void onCompleted() { Log.d(TAG, "getData completed.."); } @Override public void onError(Throwable e) { Log.e(TAG, "onError: " + e.getLocalizedMessage()); } @Override public void […]

RxJava file.createNewFile () всегда возвращает TRUE

Я пытаюсь создать новый файл с помощью RxJava на Android, например: public Observable<Boolean> createRx(String name) { return Observable.just(name) .map(new Func1<String, Boolean>() { @Override public Boolean call(String s) { File newFile = new File(localPath + "/" + s); try { return newFile.createNewFile(); } catch (IOException e) { throw Exceptions.propagate(e); } } }); } Чтобы создать новый […]

OnNext начать другое наблюдение

Есть ли более чистый способ сделать следующее? У меня Android наблюдаемый, который отлаживает запросы. OnNext вызывает вторую наблюдаемую. {// when creating the android activity searchTextEmitterSubject = PublishSubject.create(); subscription = AndroidObservable.bindActivity(this, Observable.switchOnNext(searchTextEmitterSubject)) .debounce(100, TimeUnit.MILLISECONDS, Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(String […]

Intereting Posts
Как просмотреть базу данных SQLite на устройстве Android? Как использовать auto-value с firebase 9.2 в Android Android obfuscate приложение с помощью proguard поддерживает обфускацию библиотечных банок – или это так? Приложение на Android-рынке – HTTP-уведомления не появляются Как импортировать набор значков в проект Android Studio Жизненный цикл Android: введите данные в активность в onStart () или onResume ()? Как проверить, что произойдет, когда вы опубликуете обновление для своего приложения на Market Местное уведомление повторяется каждый день в PhoneGap Android Легкая кросс-платформа C GUI (OpenGL) Как использовать V4L или V4L2 (видео для Linux) в Android? Как удалить тень FloatingActionButton? Firebase Analytics загружается успешно, но не отображается на консоли Firebase даже через 2 дня Изменить правильную маржу в представлении программы? Как захватить направление движения пальцев в Android-телефоне? Android: программно выровнять родительский снизу + нижний край