#java #android #rxjava
Стоит задача, отправить пару запросов, получить с этих запросов данные, обработать их (данные из 2-3 запросов) и отправить в адаптер( например) Каким образом это правильно и красиво сделать? Насколько я знаю, для таких задач используется RxJava, хотелось бы чтобы привели пример правильного решение с использованием Rx и без использование Rx.
Ответы
Ответ 1
Если вам нужно соеденить ответы этих запросов то вполне подойдет оператор concat Вот небольшая демонстрация final String[] aStrings = {"A1", "A2", "A3", "A4"}; final String[] bStrings = {"B1", "B2", "B3"}; final ObservableaObservable = 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.
Комментариев нет:
Отправить комментарий