gpt4 book ai didi

java - 数据 onResponse 后回调无法正常工作

转载 作者:行者123 更新时间:2023-12-02 05:32:03 27 4
gpt4 key购买 nike

我有这个方法

 private void setNews(final GetDataCallback getDataCallback){
GetDataService service = RetrofitClientInstance.getRetrofitInstance().create(GetDataService.class);
Call<ItemsAPI> call = service.getAllItems();
call.enqueue(new Callback<ItemsAPI>() {
@Override
public void onResponse(Call<ItemsAPI> call, Response<ItemsAPI> response) {
if (response.isSuccessful()) {
Log.d(TAG, "onResponse");
items = response.body();
getDataCallback.onGetData(items.getItems());
}
else {
getDataCallback.onError();
}
}

@Override
public void onFailure(Call<ItemsAPI> call, Throwable t) {
getDataCallback.onError();
Log.d(TAG, "onFailure "+ t.getMessage());
}
});
}

我从 API 获取包含信息的 Callball我需要将此信息提供给另一个电话球

 public MutableLiveData<List<News>> getNews(){
setNews(new GetDataCallback() {
@Override
public void onGetData(List<News> newsData) {
dataSet = newsData;
Log.d(TAG, "size: "+dataSet.size());
}

@Override
public void onError() {

}
});
MutableLiveData<List<News>> data = new MutableLiveData<>();
Log.d(TAG, "size before setValue: "+dataSet.size());
data.setValue(dataSet);
return data;
}

当我检查日志时我可以看到

2019-05-18 10:45:17.575 2250-2250/? D/NewsRepository: size before setValue: 0

2019-05-18 10:45:18.334 2250-2250/com.krasnov.rxjavalearning D/NewsRepository: onResponse

2019-05-18 10:45:18.334 2250-2250/com.krasnov.rxjavalearning D/NewsRepository: size: 30

我从另一个类调用 getNews() 方法。我需要先执行 setNews(),在数据集中包含元素,然后从 getNews() 返回值。

我该怎么做?

最佳答案

Retrofit.enqueue()是异步调用并在将来执行。

如果您想通过 getNews() 从 Livedata 更新 ui

LiveData<Data> getNews() {

final MutableLiveData<Data> data = new MutableLiveData<>();

setNews( new MyCallback(){

Void onSuccess(Data data){

data.setValue(data); // for success live data get call back
}
void onError(){
data.setValue(null); // for error case can pass null or empty list
}
});

return data;
}

您将收到带有回复的更新

关于java - 数据 onResponse 后回调无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56197003/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com