我有一种方法可以在我的android应用程序中异步更新帐户列表。Android/Java:循环中的异步作业
的方法是这样的
public void updateAccounts(List 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同步运行。
谢谢。
2016-10-03
Aaron
+0
看起来像你真的可以使用RxJava来(可能)简化这个 –
+0
@ cricket_007 RxJava与此无关 - 不要在小的时候建议一个巨大的锤子。 –
+0
我要检查一下,但是可以在我的用例中使用RxJava进行具体示例吗?谢啦! –