1. 程式人生 > >關於AsyncTask中三個引數的理解

關於AsyncTask中三個引數的理解

public abstract class AsyncTask<Params, Progress, Result> {  

在使用AsyncTask時,要指定這三個泛型引數,三種泛型型別分別代表“啟動任務執行的輸入引數”、“後臺任務執行的進度”、“後臺計算結果的型別”。
一個非同步任務的執行一般包括以下幾個步驟:
1.execute(Params… params),執行一個非同步任務,需要我們在程式碼中呼叫此方法,觸發非同步任務的執行。
2.onPreExecute(),在execute(Params… params)被呼叫後立即執行,一般用來在執行後臺任務前對UI做一些標記。
3.doInBackground(Params… params),在onPreExecute()完成後立即執行,用於執行較為費時的操作,此方法將接收輸入引數和返回計算結果。在執行過程中可以呼叫publishProgress(Progress… values)來更新進度資訊。
4.onProgressUpdate(Progress… values),在呼叫publishProgress(Progress… values)時,此方法被執行,直接將進度資訊更新到UI元件上。
5.onPostExecute(Result result),當後臺操作結束時,此方法將會被呼叫,計算結果將做為引數傳遞到此方法中,直接將結果顯示到UI元件上。

上面五種方法中的引數要與上面自己指定的泛型型別要保持一致。