com.squareup.retrofit2:retrofit:2.3.0
我的步驟:Android:改造:多個連續的異步請求。 Тoo許多嵌套項目
- 開始異步請求:getCompaniesList()
- 等待成功響應
- 啓動另一個異步請求:getCatalogsList()
- 等待成功響應
- 做一些其他的代碼
這裏摘錄我的活動:
RestClient restClient = RestClientFactory.getRestClient();
Call<List<Company>> companyList = restClient.getCompaniesList(filters);
companyList.enqueue(new Callback<List<Company>>() {
@Override
public void onResponse(Call<List<Company>> call, Response<List<Company>> response) {
if (response.isSuccessful()) {
RestClient restClient = RestClientFactory.getRestClient();
Call<List<Catalog>> catalogList = restClient.getCatalogsList(filters);
catalogList.enqueue(new Callback<List<Catalog>>() {
@Override
public void onResponse(Call<List<Catalog>> call, Response<List<Catalog>> response) {
if (response.isSuccessful()) {
// HERE SOME NEED CODE!!!
}
}
@Override
public void onFailure(Call<List<Catalog>> call, Throwable throwable) {
}
});
}
}
@Override
public void onFailure(Call<List<Company>> call, Throwable throwable) {
}
});
我覺得這個結構不是很好。 Т多個嵌套物品。由於結果代碼更復雜。
問題:這個結構有其他選擇嗎?
會建議使用'RxJava'這樣的事情。 –
我在工作中遇到過同樣的問題。更好看的代碼的一個醜陋的解決方案將成功通知接口,並在每個接口中進行工作。但正如@約翰提到的,檢查[RxJava](https://www.captechconsulting.com/blogs/getting-started-with-rxjava-and-android)或檢查[Otto](http://square.github。 io/otto /)庫 – riadrifai