我想处理来自AsyncTask
课堂外的返回结果。
例如,使用 有什么缺点Location loc = TheClass.execute().get();
吗?我应该在课堂内
处理结果吗?onPostExecute
我想处理来自AsyncTask
课堂外的返回结果。
例如,使用 有什么缺点Location loc = TheClass.execute().get();
吗?我应该在课堂内
处理结果吗?onPostExecute
get() 方法不是很好的方法,因为它停止了 UI 线程
唯一可以确保您开始的操作doInBackground()
已经完成的地方是回调方法onPostExecute()
。因此,就目前而言,使用 get() 并不是一个明智的想法AsyncTask
。
get() 让您(当前线程)等到结果到来并且 onPostExecute 异步工作,并且在后台工作完成后像回调一样工作。
http://developer.android.com/reference/android/os/AsyncTask.html#get()
公开最终结果获取()
如有必要,等待计算完成,然后检索其结果。
get()
get() 的目的是阻塞直到获得结果。这可能很有用,例如,如果您有多个任务,其中一个使用另一个。一个任务可以启动另一个任务并调用 get() 以等待它完成,然后再继续自己的工作。
onPostExecute (Result result)
在 doInBackground(Params...) 之后在 UI 线程上运行。指定的结果是 doInBackground(Params...) 返回的值。
如果任务被取消,则不会调用此方法。