本文介紹了Android-異步網絡呼叫-相互依賴的響應的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我今天在開發一個Android應用程序時就遇到了這種情況,我被要求根據來自兩個不同API的響應來渲染圖形。我使用的是volley,我所做的就是進行了一個連續的網絡調用,即我發出了第一個請求,在該請求的onResponse
方法中,我發出了第二個請求。然后在第二個請求的onResponse
方法中呈現視圖(圖形)。
現在我想優化這種情況。我想知道一種異步進行這兩個網絡調用的方法,即僅在收到兩個API的響應后才呈現視圖。
因此,假設我有3個模塊化方法,即-
-
getDataFromServer1(從一臺服務器獲取數據的網絡調用)
getDataFromServer2(從其他服務器獲取數據的網絡調用)
loadView
(根據從2個網絡調用接收的數據呈現圖形)
我該怎么做呢?有沒有人能幫我解釋一下?
推薦答案
@tommus解決方案是最佳方案。
如果要使用簡單或更少的代碼方法,可以使用布爾標志來確保執行這兩種方法,并根據條件向前移動。
聲明將用作標志的易失性布爾變量。
private volatile boolean flag = false;
標志在啟動時將為FALSE。現在,調用這兩個Web服務。執行的任何服務都將此標志設置為真。
getDataFromServer1();
function void onCompleteServer1() {
if(flag) {
loadViews();
} else {
flag = true;
}
}
getDataFromServer2();
onCompleteServer2Request() {
if(flag) {
loadViews();
} else {
flag = true;
}
}
這篇關于Android-異步網絡呼叫-相互依賴的響應的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,