我有一个嵌套的AsyncTask。这个简单的例子证明它们有效:http://pastebin.com/0R9Cfxx1
但是,在我的生产代码中,我的嵌套AsyncTask返回getStatus == AsyncTask.RUNNING 但是,doInBackground()不会执行。
这怎么可能?
答案 0 :(得分:1)
我理解AsyncTask的方式,你应该从主应用程序线程运行它,它创建一个单独的线程,其中运行“doInBackground()”。现在,如果在另一个AsyncTask中运行嵌套的AsyncTask,则总共至少有三个线程:主应用程序线程,第一个AsyncTask线程和第二个AsyncTask线程。它们都将并行运行,这打破了“嵌套”的概念。 我相信最好的方法是重构你的代码,只使用一个AsyncTask。