如何监视每个并行运行的AsyncTask

时间:2014-10-25 13:03:31

标签: android android-asynctask sax

我正在运行三个AsyncTask并行。 (至少我认为他们正在并行执行)。

我正在做的是,我使用SAX Parser来解析来自三个不同XML Feed的数据, AsyncTask对象在循环内创建三次,每次都有不同的URL。

for (int i = 0; i < URLs.length; i++){
                GetNews blog = new GetNews(i);
                blog.execute();
            }

执行此代码时,将执行三个Asynctasks。 我想知道如何分别监视每个任务,因为我想设置root元素的值, 例如,

执行Task1时,rootElement = "entry", 当Task2执行rootElement = "post"

等等.. 这是我尝试过的。     for(int i = 0; i&lt; URLs.length; i ++){                        if(i == 0)                           rootElement =&#34; entry&#34;                        否则if(i == 1)                           rootElement =&#34; post&#34;                        否则如果(i == 2)                           rootElement =&#34; channel&#34;                         GetNews blog = new GetNews(i);                         blog.execute();                     }

但是整个代码在几秒钟内执行,最后的rootElement值设置为最后一个。

如何根据正在运行的任务单独监视每个任务以设置元素的值。

1 个答案:

答案 0 :(得分:0)

这样的事情对你有用吗?

ArrayList<GetNews> blogs = new ArrayList<GetNews>();

for (int i = 0; i < URLs.length; i++){
    blogs.add(new GetNews(i));
    blogs.get(i).execute();
}

// blogs now holds references to each running task
blogs.get(0).getStatus();
相关问题