我想在 Android 上实现如下内容:
for(int i=0; i<num; i++){
//a,b.. are changing
aTask = new myAsyncTask(a,b..);
aTask.execute();
//Code to wait for myAsyncTask to finish
}
问题是如何在开始新迭代之前等待 myAsyncTask 完成。我认为一种可能的解决方案是在里面放置一个处理程序等待几秒钟。例如:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
}
}, 5000);
但是即使它正在工作,这也是不对的,因为您必须设置一个标准时间来等待 myAsyncTask。并且不确定 myAsyncTask 是提前完成还是延迟完成,因为 a,b.. 参数在每次迭代中都会发生变化。
我认为的另一个解决方案是每次循环询问对象 aTask 以获取 myAsyncTask 的状态并检查它是否已完成。例如:
while(!aTask.getStatus().equalsTo(AsyncTask.Status.FINISHED)){
}
但这不起作用,因为 myAsyncTask 始终在运行。
有人可以帮助我吗?