我想處理類以外AsyncTask
的返回結果。AsyncTask,處理onPostExecute與get()的結果
是否有任何缺點,例如Location loc = TheClass.execute().get();
?
我應該在班級裏處理onPostExecute
的結果嗎?
我想處理類以外AsyncTask
的返回結果。AsyncTask,處理onPostExecute與get()的結果
是否有任何缺點,例如Location loc = TheClass.execute().get();
?
我應該在班級裏處理onPostExecute
的結果嗎?
get()
目的,獲取的(),是阻斷,直到所獲得的結果。例如,如果您有多個任務,其中一個使用另一個 ,則此 可能很有用。一個任務可以開始另一個任務,並在繼續自己的工作之前調用get()等待它完成 。
onPostExecute (Result result)
在doInBackground(Params ...)之後的UI線程上運行。指定的結果是由doInBackground(Params ...)返回的值。
如果任務被取消,則不會調用此方法。
get()讓你(當前線程)等待,直到結果出來,onPostExecute確實工作異步,並在後臺工作完成後像回調一樣工作。
http://developer.android.com/reference/android/os/AsyncTask.html#get()
公開的最終結果得到()
如有必要,等待計算完成,然後獲取其結果。
唯一可以確保您已在doInBackground()
中開始的操作已完成的地方是回調方法onPostExecute()
。因此,就AsyncTask
而言,使用get()並不是一個明智的想法。
好的,所以在其他工作中,使用get()會進行同步調用? – Johan
可以說........... –