AsyncTask,处理onPostExecute与get()的结果

时间:2012-06-19 09:02:15

标签: java android android-asynctask

我想处理班级外AsyncTask的返回结果。

是否有任何缺点,例如Location loc = TheClass.execute().get();
我应该在课堂内onPostExecute处理结果吗?

4 个答案:

答案 0 :(得分:2)

get()方法对它来说不是很好的方法,导致它停止了UI-thread

答案 1 :(得分:1)

唯一可以确保您在doInBackground()中启动的操作已完成的地方是回调方法onPostExecute()。因此,就AsyncTask而言,使用get()并不是一个明智的想法。

答案 2 :(得分:0)

get()让你(当前线程)等到结果来了,onPostExecute确实异步工作,并在后台工作完成时像回调一样工作。

http://developer.android.com/reference/android/os/AsyncTask.html#get()

公共最终结果get()

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

答案 3 :(得分:0)

get()

get()的目的是阻塞直到获得结果。这个 可能很有用,例如,如果你有多个任务,一个人使用 另一个。一个任务可以启动另一个任务并调用get()来等待它 在继续自己的工作之前完成。

onPostExecute (Result result)

在doInBackground(Params ...)之后在UI线程上运行。指定的结果是doInBackground(Params ...)返回的值。

如果任务被取消,则不会调用此方法。