我在Android中使用POJO和Retrofit2来调用REST服务来获取一些数据。我确实收到了response.body()中的数据,但我不希望将这些数据分配给任何Android UI组件。我想得到这个返回的对象并返回或在onResponse之外工作。
抱歉,我是JAVA或回调的新手,但在搜索时发现我需要编写回调但不知道如何编写它。有人可以请帮助。
以下是代码:
public String getUserIPCountry(Context context){
ipf = new Ipinfo();
IpinfoAPI.Factory.getInstance().getCountryCode().enqueue(new Callback<Ipinfo>() {
@Override
public void onResponse(Call<Ipinfo> call, Response<Ipinfo> response) {
if(response.isSuccessful()){
//Want to return/use below data outside of this method
//response.body().getCountryCode();
}
}
@Override
public void onFailure(Call<Ipinfo> call, Throwable t) {
}
});
return null;
}
答案 0 :(得分:0)
在操作getUserIPCountry
中设置当数据从服务器到达时将调用的Callback
。
执行不会停止并等待响应。
如果来自服务器的响应正常,则会调用onResponse
,如果出现问题,将调用onFailure
。
因此,在onResponse
的{{1}}方法中,您应该通知感兴趣的类数据到达,(例如,显示数据的ui类)。