1

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

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

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

请建议。

4

2 回答 2

1

我将继续并建议将此作为答案,最初是在我的评论中:

只需在您从中获取 JSON 的同一个 AsyncTask 中同步获取图像。例如:

doInBackground(Void...params){
    //fetch JSON
    // once JSON is fetched, fetch image
}
于 2012-10-10T20:53:50.030 回答
0

不知道你想如何准确地构建它,但文档说:

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

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

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

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

于 2012-10-10T20:47:09.300 回答