В основном мне нужно создать список наблюдаемых без начальных значений.Я подписываюсь на этот список наблюдаемых и буду предоставлять требуемые результаты на основе ответов всех наблюдаемых.Я использую оператор zip.
Проблема в том, что мне нужно изначально создать Observables, добавить их в список и использовать оператор zip.Только позже я выполняю сетевой запрос с помощью Retrofit, и мне нужно обновить значение наблюдаемого в списке, чтобы работал весь мой zip-оператор.
Однако я не нашел способа принудительно обновить наблюдаемое всписок с ответом от Retrofit.Это кажется очень простым, но я не нашел никаких решений ... единственная идея - использовать тонны предметов и добавить их в список ...
List<Observable<Object>> listObservables = new ArrayList<>();
//Adding initial request
Observable<Object> testObservable = RetrofitFactory.create().startProcess();
listObservables.add(testObservable);
Observable.concatDelayError(listObservables).subscribe(response ->
{
//This is where all results should be managed
Log.d("response", String.valueOf(response));
},
error ->
{
Log.d("response", String.valueOf(error));
});
//Actual request occurs much later in application
listObservables.get(0).subscribeOn(Schedulers.io()).
observeOn(AndroidSchedulers.mainThread()).subscribe(response ->
{
// the response of this, should notify concatDelayError
Log.d("respoonse", String.valueOf(response));
});