У меня есть этот простой интерфейс API Retrofit2, который содержит
interface Api {
@GET(BuildConfig.END_POINT) Observable<Response> fetchData();
}
Так что все в порядке, когда я делаю новый запрос, но, скажем, я запускаю запрос и немедленно отменяю подписку, а затем я пытаюсь запустить новый запрос, он ничего не возвращает.
Итак, в коде это выглядит примерно так:
в Activity::onPause я отменяю подписку, а в Activity::onResume снова запускаю запрос.
Мой запрос выглядит примерно так:
api.fetchData()
.timeout(30,TimeUnit.SECONDS)
.doOnNext(new Action1<Response>() {
@Override public void call(Response response) {
list = response.getDataForList();
}
}).flatMap(new Func1<Response, Observable<List<Object>>>() {
@Override public Observable<Object>> call(Response response) {
return Observable.just(list);
}
});
Когда я пытался его отладить, вызов выполняется, но doOnNext() не вызывается. Ни один из методов жизненного цикла не вызывается.
И просто для пояснения здесь я просто возвращаю наблюдаемое, которое я использую где-то еще, где я наблюдаю за основным потоком и подписываюсь на ввод-вывод.