
[英]Is it possible to run the “AsyncTask” method inside another method “AsyncTask”?
[英]Run Asynctask class inside another asynctask
我有一个类,其中有一个内部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类。
现在我该怎么办,我应该在哪里调用第二个asynctask类?
您应该在单个AsyncTask
运行所有运行日志记录任务。 这样做非常好,因为它已经为您的所有处理提供了后台线程。
只需在主要的doInBackGround方法中进行所有http处理即可。
每当您要更新UI时,都会有2个钩子:
onPostExecute
:在doInBackground完成时被调用。 完全完成后台处理后,将要在UI上执行的所有逻辑放在此处。 onProgressUpdate
:每当您从doInBackground
方法中调用publishProgress
时,都会调用此方法。 每当您仍要进行后台处理时,只要要更新UI,都应执行此操作。 它允许您显示中间进度。 这将导致自动调用AsyncTasks onProgressUpdate
,您可以在其中更新UI。 如果用于支持ListView的适配器是活动类的成员变量,则可以从onPostExecute和onProgressUpdate引用它,这意味着您可以在以下情况下更新列表:
onPostExecute
) onProgressUpdate
) 此处显示了一个示例: http : //developer.android.com/reference/android/os/AsyncTask.html
不支持嵌套AsynTasks
(并且永远无法工作)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.