多个接口请求后回调回来 区分的问题!
DevXue opened this issue · comments
比如我的Activity要发起 5 次接口请求,而且是没有关联的请求, 我同时发起,然后回调回来(我的请求是在Model层发起的,Activity只管处理回调方法)
Model层发起请求 1
RxHttpUtils
.createApi(API.class)
.getData(pn,ps,type)
.compose(Transformer.<Rtn>switchSchedulers(DialogUtil.showLoading(context)))
.subscribe(new CommonObserver<Rtn>() {
@Override
protected void onError(String errorMsg) {
onResponseFailed(null,errorMsg);
}
@Override
protected void onSuccess(Rtn bookBean) {
onResponseSuccess(code,bookBean); //这里是Activity 复写的回调方法
}
});
**Model层发起请求 2*·
RxHttpUtils
.createApi(API.class)
.getData(pn,ps,type)
.compose(Transformer.<Rtn>switchSchedulers(DialogUtil.showLoading(context)))
.subscribe(new CommonObserver<Rtn>() {
@Override
protected void onError(String errorMsg) {
onResponseFailed(null,errorMsg);
}
@Override
protected void onSuccess(Rtn bookBean) {
onResponseSuccess(code,bookBean); //这里是Activity 复写的回调方法
}
});
**Model层发起请求 3**
RxHttpUtils
.createApi(API.class)
.getData(pn,ps,type)
.compose(Transformer.<Rtn>switchSchedulers(DialogUtil.showLoading(context)))
.subscribe(new CommonObserver<Rtn>() {
@Override
protected void onError(String errorMsg) {
onResponseFailed(null,errorMsg);
}
@Override
protected void onSuccess(Rtn bookBean) {
onResponseSuccess(code,bookBean); //这里是Activity 复写的回调方法
}
});
这里的R小HttpUtils中的onSuccess 中写了个onResponseSuccess() 方法, 我咋我的Activity中复写这个方法 就可以接受回调回来的数据, 那么此时 我该怎么区分 是哪个接口回来的请求呢?
在你的onResponseSuccess回调方法中加个参数就可以实现
比如 onResponseSuccess( type, code, bookBean),因为你的请求中已经有type参数区分了,直接回调回来就好了
好的 谢谢你!
不好意思,我一菜鸟,不太了解,请问可以写的具体些吗?
@wq1216
我个人的做法 仅供参考:
下面这段代码比如你在Activity里头调用了 getData的方法来请求数据,
那么这个时候 你可以通过这个方法中的type参数来区分你的接口,比如这是一个获取用户信息的接口,这个type 的值为“getUser” , 然后你又发起了一个获取用户地址的接口为getAddressData(String type) ,此时这个type的值为“getAddress” ,那么你在回调中判断这个type即可 就知道这个那个请求的回调了, 我个人是这么搞得,又掉low···
public void getData(int pn,int ps,type){
RxHttpUtils
.createApi(API.class)
.getData(pn,ps,type)
.compose(Transformer.<Rtn>switchSchedulers(DialogUtil.showLoading(context)))
.subscribe(new CommonObserver<Rtn>() {
@Override
protected void onError(String errorMsg) {
onResponseFailed(null,errorMsg);
}
@Override
protected void onSuccess(Rtn bookBean) {
onResponseSuccess(code,bookBean); //这里是Activity 复写的回调方法
}
});
}