我有一个类,我有一个内部asynctask类,它执行json解析。我已经调用了asynctask类并成功完成了解析并在列表视图中显示。现在基于该列表视图中的ID(产品ID),我必须在与该产品相对应的相同列表视图中显示图像。为此,必须解雇另一个URL并且必须进行解析。所以我已经将所有产品ID存储在一个数组列表中并基于我正在做的
for(int z=0;z<Prdtspcl_pid.size();z++){
String s=Prdtspcl_pid.get(z).toString();
String spclurl=url to be fired+s;
MySpclMethod msm2= new MySpclMethod(spclurl);
msm2.execute();
}
其中prdt_pid
是我的product_id,而MySpclMethod
是图像解析的另一个内部asynctask类。
现在该怎么做&amp;我应该在哪里调用第二个asynctask类?
答案 0 :(得分:3)
您应该在此单AsyncTask
中运行所有运行日志记录任务。这样做非常好,因为它已经为你提供了一个后台线程来处理所有的事情。
只需在主doInBackGround方法中执行所有http处理。
每当您想要更新UI时,您都有2个钩子:
onPostExecute
:当doInBackground完成时调用它。在完成后台处理时,将要在UI上执行的所有逻辑放在此处。 onProgressUpdate
:只要您从publishProgress
方法中调用doInBackground
,就会调用此方法。每当您想要在后台处理仍在进行时更新UI时,请执行此操作。它允许您显示中间进度。这将导致自动调用AsyncTasks onProgressUpdate
,您可以在其中更新UI。如果用于支持ListView的适配器是活动类的成员变量,那么您可以从onPostExecute和onProgressUpdate引用它,这意味着您可以在
时更新列表onPostExecute
)onProgressUpdate
)此处显示了一个示例:http://developer.android.com/reference/android/os/AsyncTask.html
不支持嵌套AsynTasks
(并且永远无法工作)。