【发布时间】:2015-07-27 07:27:37
【问题描述】:
我的应用程序中有多个异步任务,我想在满足特定条件时执行它。例如,
Task1 类扩展 AsyncTask...
Task2 类扩展 AsyncTask..
Task3 类扩展 AsyncTask...
我有一个 while 循环,用于从地图中迭代一些值。 例如:
while(iterator.next())
{
Map.Entry pair = (Map.Entry) it.next();
String title = pair.getKey().toString();
if(title.equals("one"))
{
//execute task1;
}else if(title.equals("two"))
{
//execute task2;
}
etc..
}
这是我目前使用的示例代码。 每个任务都包含一个进度对话框,该对话框从 onPreExcecute() 和 在 onPostExecute() 上被解雇。
我的问题是我想一次只执行一项任务。 在我的代码中,所有任务都同时启动,进度对话框将相互重叠。所以有任何方法一次只执行一个任务, 提前谢谢。
【问题讨论】:
-
尝试在一个异步任务中创建
-
从一个 Asynctask 开始,在 onPostExecute 上调用下一个。
-
保留一个任务队列,当第一个任务结束时它会在 postExe 中调用下一个任务
-
感谢重播,但我无法从 onPostExecute 调用 Asynctask,因为我有一个带有字符串列表的哈希映射,基于该字符串,我想执行任务。所以我不想执行所有任务。
-
你可以在每个 onPostExecute 中测试条件,不是吗?