我正在运行三个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
值设置为最后一个。
如何根据正在运行的任务单独监视每个任务以设置元素的值。
答案 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();