Страницы

Поиск по вопросам

вторник, 31 марта 2020 г.

Как грамотно отправить 2-3 запроса android

#java #android #rxjava


Стоит задача, отправить пару запросов, получить с этих запросов данные, обработать
их (данные из 2-3 запросов) и отправить в адаптер( например)

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


Ответы

Ответ 1



Если вам нужно соеденить ответы этих запросов то вполне подойдет оператор concat Вот небольшая демонстрация final String[] aStrings = {"A1", "A2", "A3", "A4"}; final String[] bStrings = {"B1", "B2", "B3"}; final Observable aObservable = Observable.fromArray(aStrings); final Observable bObservable = Observable.fromArray(bStrings); Observable.concat(aObservable, bObservable) .subscribe(getObserver()); На выходе получим поток данных спрерва "A1", "A2", "A3", "A4" а затем "B1", "B2", "B3" Так же можно использовать оператор merge Observable.merge(aObservable, bObservable) .subscribe(getObserver()); тогда на выходе получим поток данных "A1", "B1", "A2", "A3", "A4", "B2", "B3" или же zip Observable stringObservable1 = Observable.just("Hello", "World"); Observable stringObservable2 = Observable.just("Bye", "Friends"); Observable.zip(stringObservable1, stringObservable2, new BiFunction() { @Override public String apply(@NonNull String s, @NonNull String s2) throws Exception { return s + " - " + s2; } }).subscribe(new Consumer() { @Override public void accept(String s) throws Exception { System.out.println(s); } }); на выход получим Hello - Bye World - Friends Я б не стал писать это чисто андроид потоками ибо это ресурсаемко советую использовать rxJava.

Комментариев нет:

Отправить комментарий