【发布时间】:2016-06-13 16:25:55
【问题描述】:
我有这个简单的 retrofit2 api 接口,其中包含
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() 没有被调用。没有调用任何生命周期方法。
为了澄清起见,我只是返回我在其他地方使用它的 observable,我在主线程上观察并订阅 IO。
【问题讨论】:
标签: android retrofit2 rx-android