Java 使用AsyncTask.get()和onPostExecute()之间的区别
我在AsyncTask的文档中注意到,一旦线程上的工作完成,就可以使用名为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
get()
的方法检索结果。文件上说
如有必要,等待计算完成,然后检索其结果
这是否意味着如果我有这行代码:
List<Data> data = someAsyncTask.execute.get();
List data=someAsyncTask.execute.get();
在主UI线程中,它是否等待任务完成,然后再执行其后的任何代码?如果是这样,这将使AsyncTask的使用变得无用。我错过了什么
AsyntTask.get()
是使用onPostExecute()
将数据返回主线程的替代方法吗?如果是,安全吗?或者它的用途完全不同?如果调用AsyncTask.get()
而任务未完成,则当前线程将等待(并可能被中断)
没错,在UI线程中调用此方法会使AsyncTask变得无用。但您可以在另一个线程中调用它,该线程需要此任务的结果以供进一步执行。不,您是正确的,使用
get
将异步任务呈现为可用。我知道,我没有想到在嵌套线程中使用它,这会使它变得有用。