我已经查看了其他问题而且我没有澄清我从另一个任务调用任务的疑问,我有以下代码:
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是一个任务,当我运行程序什么都不做,甚至没有调用任务时,就像安卓省略的那样。
答案 0 :(得分:1)
但仅在onProgressUpdate()或onPostExecute()内部,因为这些方法在UI线程上运行。因此,通过选择上面列出的两种方法之一,在UI线程上启动第二个AsyncTask。
所以你可以从另一个AsyncTask中调用AsyncTask,只要它在这两个方法中运行。
还有另一个解决此问题的StackOverflow帖子here
答案 1 :(得分:1)
可以从另一个异步任务调用异步任务
但仅限于onProgressUpdate()或onPostExecute()
原因 - ,因为这些方法在UI线程上运行。因此,通过选择上面列出的两种方法之一,在UI线程上启动第二个AsyncTask。