Android 在改装中处理返回相同类型的多个请求

Android 在改装中处理返回相同类型的多个请求,android,retrofit,Android,Retrofit,我有一个片段是这样设置的: public mFragment extends Fragment implements Callback<mType> { ... @Override public void onViewCreated(View v, Bundle sis) { Retrofit retrofit = new Retrofit.Builder().baseUrl("MYURL").addConverterFactory(GsonConverterFa

我有一个片段是这样设置的:

public mFragment extends Fragment implements Callback<mType> {

    ...

@Override
public void onViewCreated(View v, Bundle sis) {
    Retrofit retrofit = new Retrofit.Builder().baseUrl("MYURL").addConverterFactory(GsonConverterFactory.create()).build();
    api mAPI = retrofit.create(api.class);
    Call<mType> call1 = mAPI.query1("query1"));
    Call<mType> call2 = mAPI.query2("query2"));
    call1.enqueue(this);
    call2.enqueue(this);
}

@Override
public void onFailure(Throwable t) {
    ...
}

@Override
public void onResponse(final Response<mType> response, Retrofit retrofit) {
    ...
}
}
publicmfragment扩展片段实现回调{
...
@凌驾
已创建视图上的公共void(视图v,捆绑sis){
改装改装=新建改装.Builder().baseUrl(“MYURL”).addConverterFactory(GsonConverterFactory.create()).build();
api mAPI=reformation.create(api.class);
调用call1=mAPI.query1(“query1”);
调用call2=mAPI.query2(“query2”);
呼叫1.排队(本次);
呼叫2.排队(本次);
}
@凌驾
失效时的公共无效(可丢弃的t){
...
}
@凌驾
公共响应(最终响应、改装){
...
}
}
我需要进行2个api调用,它们都返回相同的类型。然而,我想用不同的onResponse方法来处理这两个问题,因为我需要对它们做不同的事情。这是在改装2.0。 这是另一个服务的API,因此我无权更改任何响应


有没有办法指定翻新调用回调用的方法?我真的希望这有一个干净的解决方案,就像我使用两种不同的返回类型一样。如果出现最坏的情况,我可以复制对象并重命名它,但我认为有一种“正确”的方法可以做到这一点。

将您的请求单独排队。因此,对于这两个请求,您的响应侦听器将是独立的

call1.enqueue(new Callback<String>() {
    @Override
    public void onResponse(Response<String> response) {
    }

    @Override
    public void onFailure(Throwable t) {
    }
});
call1.enqueue(新回调(){
@凌驾
公共响应(响应){
}
@凌驾
失效时的公共无效(可丢弃的t){
}
});

call2.enqueue(新回调(){
@凌驾
公共响应(响应){
}
@凌驾
失效时的公共无效(可丢弃的t){
}
});

将您的请求单独排队。因此,对于这两个请求,您的响应侦听器将是独立的

call1.enqueue(new Callback<String>() {
    @Override
    public void onResponse(Response<String> response) {
    }

    @Override
    public void onFailure(Throwable t) {
    }
});
call1.enqueue(新回调(){
@凌驾
公共响应(响应){
}
@凌驾
失效时的公共无效(可丢弃的t){
}
});

call2.enqueue(新回调(){
@凌驾
公共响应(响应){
}
@凌驾
失效时的公共无效(可丢弃的t){
}
});