我已经注意到AsyncTask here的文档,您可以使用名为List<Data> data = someAsyncTask.execute.get();
的方法在线程上的工作完成后检索您的结果。文档说它
如果需要等待计算完成,然后检索其结果。
这是否意味着如果我有这行代码:
AsyntTask.get()
在主UI线程中,是否等待任务完成后再执行任何代码?如果是这样,这将使AsyncTask的使用变得毫无用处。我在这里缺少什么?
onPostExecute()
是使用{{1}}将数据返回主线程的替代方法吗?如果是这样,它安全吗?或者它用于完全不同的东西?
答案 0 :(得分:2)
如果您致电AsyncTask.get()
并且任务未完成,则当前线程将等待(并且可以中断)。
是的,在UI线程中调用此方法会使AsyncTask失效。但是你可以在另一个需要此任务结果的线程中调用它来进一步执行。