AsyncTask不适用于for循环

时间:2014-01-25 06:22:51

标签: android web-services xml-parsing android-asynctask

我的AsyncTask类在for循环中不起作用。以下是我的代码,请查看它。

for (int i = 0; i < size; i++) {
    String id = careplan_disease_Parser.DiseaseID.get(i);
    String method = "GetCarePlan_Comment?CurrentValue=0&OptionId=" + id + "&DiseaseID=" + id + "&OrgId=" + orgId + "";
    String link = "GetCarePlan_Comment_dislink";

    task = new AsyncTask123();
    task.execute(link, method);
    method=null;
    link=null;
    task=null;
}

任务只执行一次。所以我无法在循环中第二次从Web服务获得价值。 请帮助我如何使其发挥作用。

谢谢

2 个答案:

答案 0 :(得分:0)

你可以编写一个start-method,它在你的AsyncTask的onPostExecute部分调用。它应该是这样的:

private void start(int number)
{
    if(number == size)
    {
        //exit
    }
    else
    {
        new AsyncTask123().execute(link, method);
    }
}


private class AsyncTask123 extends AsyncTask<> {
    protected void onPostExecute() {
        start(i++);
    }
}

这应该有用,你只需要满足你的需要。

答案 1 :(得分:0)

如果您想在for循环中使用AsyncTask,那么您应该像以下一样调用您的类:

   new AsyncTask123().execute(link, method);

不喜欢:

         task = new AsyncTask123();
         task.execute(link, method);