我有一種方法可以在我的android應用程序中異步更新帳戶列表。Android/Java:循環中的異步作業
的方法是這樣的
public void updateAccounts(List<String> accountIds, final SampleCallback callback) {
for (String accountId : accountIds) {
getAccountsAsync(accountId, new MySampleCallback() {
@Override public void result(AccountResponse response) {
callback(response);
}
}
}
}
這是更新帳號的方法。
void getAccountsAsync(String accountId, final MySampleCallback callback) {
//Execution of request
callback.result(new AccountsResponse("Just a sample response from the service"));
}
,這是我的回調接口
public interface MySampleCallback{
void result(AccountsResponse response);
}
的問題是,在我的執行循環,我只得到列表如 的最後一個項目的結果我有一個列表字符串 - >「一」,「二」,「三」
我得到的唯一結果是從最後一項是三。
另外兩個被忽略,但是他們仍然被執行,但返回給我的唯一結果是最後一個項目。
我想要做的是,在循環的下一次迭代之前,我可以在執行下一個循環之前停止它嗎?更像是運行使這個Async同步運行。
謝謝。
看起來像你真的可以使用RxJava來(可能)簡化這個 –
@ cricket_007 RxJava與此無關 - 不要在小的時候建議一個巨大的錘子。 – manabreak
我要檢查一下,但是可以在我的用例中使用RxJava進行具體示例嗎?謝啦! – Aaron