从AsyncTask调用AsyncTask

时间:2012-10-10 20:22:36

标签: android android-asynctask

虽然我还没有尝试过,但从理论的角度来看,我问这个问题只是为了清除我的怀疑。

我的情况如下: 1.向服务器发送请求并收到JSON响应。为此,我使用AsyncTask,因为接收响应可能有延迟。 2.从此响应中获取图像URL。 3.再使用一个AsyncTask,调用图像URL并获取图像。 (再次可能需要时间来获取图像)

所以你认为使用2 AyncTask只是为了获得该图像效率低下。 或者,在步骤1中,不是使用AsyncTask,而是按顺序运行代码并改为设置Timeout。

请建议。

1 个答案:

答案 0 :(得分:0)

不确定如何准确地构建它,但文档说:

execute(Params...) must be invoked on the UI thread.

http://developer.android.com/reference/android/os/AsyncTask.html

因此您无法从其他异步任务后台方法执行新的异步任务。

即使您尝试从progress方法执行此操作,那么由于HONEYCOMB asynctasks是序列化的,因此您的第二个异步任务无论如何都将排队 - 您必须使用THREAD_POOL_EXECUTOR使其并行运行。