我正在使用Loopj的android異步http客戶端。 我所擁有的是for循環,它爲Web服務創建了多個異步http請求。當多個AsyncHttpClient請求完成時收到通知
有沒有辦法在所有人都完成時得到通知?
我正在使用Loopj的android異步http客戶端。 我所擁有的是for循環,它爲Web服務創建了多個異步http請求。當多個AsyncHttpClient請求完成時收到通知
有沒有辦法在所有人都完成時得到通知?
由於http://loopj.com/android-async-http/可以靜態方式使用。 你可以做的是,無論你何時創建一個請求,你都會添加一個靜態變量,並且每當你得到響應時(包括場景onsucess/onfailure,將靜態變量減1)。 當變量再次爲0時,做你的東西。
不知道這是否正是你想要的,但它可能是一個很好的解決方案。你可以使用「get」屬性。 描述是: 「如果需要,等待計算完成,然後檢索其結果。」
而且由於您在循環中使用它,所以您可能希望將結果添加到列表或其他東西。
您可以通過事件總線偵聽器來完成。在您的請求的結束狀態中,您可以將事件發送給您要通知的所有訂閱者。檢查實現下面的事件總線:
但是,這一切就看你的代碼。如果您知道將發送多少個請求,則可以輕鬆訂閱每個異步請求的所有事件,並且可以檢查是否全部完成。如果您之前不知道請求的數量,則可以創建邏輯來保持每個請求的狀態,然後發送事件以通知您想要的訂戶