0

我有一个嵌套的 AsyncTask。这个简单的例子证明了它们是有效的:http: //pastebin.com/0R9Cfxx1

但是,在我的生产代码中,我的嵌套 AsyncTask 返回 getStatus == AsyncTask.RUNNING 但 doInBackground() 不执行。

怎么会这样?

4

1 回答 1

1

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

于 2012-09-07T16:24:39.390 回答