Java 使用AsyncTask.get()和onPostExecute()之间的区别

Java 使用AsyncTask.get()和onPostExecute()之间的区别,java,android,multithreading,android-asynctask,Java,Android,Multithreading,Android Asynctask,我在AsyncTask的文档中注意到,一旦线程上的工作完成,就可以使用名为get()的方法检索结果。文件上说 如有必要,等待计算完成,然后检索其结果 这是否意味着如果我有这行代码: List<Data> data = someAsyncTask.execute.get(); List data=someAsyncTask.execute.get(); 在主UI线程中,它是否等待任务完成,然后再执行其后的任何代码?如果是这样,这将使AsyncTask的使用变得无用。我错过了什么 A

我在AsyncTask的文档中注意到,一旦线程上的工作完成,就可以使用名为
get()
的方法检索结果。文件上说

如有必要,等待计算完成,然后检索其结果

这是否意味着如果我有这行代码:

List<Data> data = someAsyncTask.execute.get();
List data=someAsyncTask.execute.get();
在主UI线程中,它是否等待任务完成,然后再执行其后的任何代码?如果是这样,这将使AsyncTask的使用变得无用。我错过了什么


AsyntTask.get()
是使用
onPostExecute()
将数据返回主线程的替代方法吗?如果是,安全吗?或者它的用途完全不同?

如果调用
AsyncTask.get()
而任务未完成,则当前线程将等待(并可能被中断)


没错,在UI线程中调用此方法会使AsyncTask变得无用。但您可以在另一个线程中调用它,该线程需要此任务的结果以供进一步执行。

不,您是正确的,使用
get
将异步任务呈现为可用。我知道,我没有想到在嵌套线程中使用它,这会使它变得有用。