无法从另一个 ASyncTask 调用 ASyncTask

Can't call ASyncTask from another ASyncTask

我看过其他问题,但未能澄清我对从另一个任务调用任务的疑问,我有以下代码:

protected List<Plan> doInBackground(String... params) 
    try {
        JSONParsePlans parseJSON = new JSONParsePlans();
        return parseJSON.execute(params[0], params[1], params[2]).get();
    } catch (InterruptedException e) {
        e.printStackTrace();
        return null;
    } catch (ExecutionExeption e) {
        e.printStackTrace();
        return null;
    }
}

parseJSON 是一个任务,当我 运行 程序什么都不做,甚至没有调用任务时,这就像 Android 为了安全而省略的东西。

根据这个Whosebug Post

but only inside onProgressUpdate() or onPostExecute() since these methods runs on the UI thread. Therefore, start the second AsyncTask on the UI thread by choosing one of the two methods listed above.

因此您可以从另一个 AsyncTask 调用一个 AsyncTask,只要它以这两种方法中的任何一种运行即可。

还有另一个 Whosebug post 解决了这个问题 here

可以从另一个异步任务调用一个异步任务

但仅在 onProgressUpdate() 或 onPostExecute() 内部

原因 - 因为这些方法在 UI 线程上运行。因此,通过选择上面列出的两种方法之一,在 UI 线程上启动第二个 AsyncTask。