Wie Sie im folgenden Code sehen können, habe ich die getPostByPageId() -Methode aufgerufen, um Daten vom Server zu erhalten und dann zu überprüfen, ob die Daten zurückgegeben wurden, mache ich andere Jobs.Warum rufen Async-Methoden in Retrofit 2 früher auf?
private void recyclerViewJobs() {
getPostByPageId();
if (pageDtoList.size() > 0) {
emptyText.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
PagesAdapter adapter = new PagesAdapter(pageDtoList, context);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(context));
} else {
emptyText.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
}
.....
private void getPostByPageId() {
IPageEndPoint pageEndPoint = ServiceGenerator.createService(IPageEndPoint.class);
Call<List<PageDto>> call = pageEndPoint.getPostByPageId(profileId);
call.enqueue(new retrofit2.Callback<List<PageDto>>() {
@Override
public void onResponse(Call<List<PageDto>> call, Response<List<PageDto>> response) {
if (response.isSuccessful()) {
pageDtoList = response.body();
} else {
log.toast("response is not successful for getPostByPageId");
}
}
@Override
public void onFailure(Call<List<PageDto>> call, Throwable t) {
log.toast("getPostByPageId onFailure");
}
});
}
Ich weiß nicht, warum in der recyclerViewJobs() -Methode, um den Zustand, wenn die Arbeit zuerst?
vielleicht könnte ich nicht mein Problem sehr gut erklären, aber mein großes Problem ist zu wissen, wenn ich einige Daten aus REST erhalten mag und diese Daten dann an einen anderen REST-Dienst verwenden, wie kann ich diesen Job tun, weil Enqueue in Retrofit funktioniert asynchron und warten Sie nicht auf die erste Methode, weil davon beginnt die zweite Methode in einem anderen Thread und , weil meine Daten nicht von der ersten Methode noch erhalten wurde, war mein Programm abgestürzt und ich nicht Bekomme die Antwort. Das ist mein Problem .....
Prost