2012-09-07 49 views

回答

1

我理解的AsyncTask的方式,你应该从主应用程序线程,它创建一个单独的线程,其中“doInBackground()”运行运行它。现在,如果您在另一个AsyncTask中运行嵌套的AsyncTask,则至少有三个线程总数:主应用程序线程,第一个AsyncTask线程和第二个AsyncTask线程。它们将全部并行运行,这打破了“嵌套”的概念。 我相信最好的方法是重构你的代码只使用一个AsyncTask。

+1

你说得对,应该总是从主线程调用AsyncTask。另外,由于Honeycomb,AsyncTasks不再从线程池中提取,而是在同一个线程上按顺序执行。所以,即使OP没有为嵌套他的AsyncTasks发生错误,内部的一个也不会执行,直到在较新的设备上完成外部处理之后。 http://developer.android.com/reference/android/os/AsyncTask.html – MattDavis

相关问题