AsyncTask

(

API level 3

,所以幾乎所有目前在市面上流通的

Android

版本皆可使用)

是除

Thread

外的另一種選擇,

Android

團隊鼓勵主執行緒(

UI thread

) 專注於操作

&

畫面的流暢呈現,其餘工作 (如網路資料傳輸、檔案/磁碟/資料存取) 最好都在背景執行;

Thread

通常要搭配

Handler

使用,而

AsyncTask

用意在簡化背景執行

Thread

程式碼的撰寫。

如果您預期要執行的工作能在幾秒內完成,就可以選擇使用

AsyncTask

,若執行的時間很長,

Android

則強烈建議採用

Executor

,

ThreadPoolExecutor

FutureTask

要使用

AsyncTask

,必定要建立一個繼承自

AsyncTask

的子類別,並傳入

3

項資料:

Params

-- 要執行

doInBackground()

時傳入的參數,數量可以不止一個

Progress

--

doInBackground()

執行過程中回傳給

UI thread

的資料,數量可以不止一個

Rsesult

-- 傳回執行結果, 若您沒有參數要傳入,則填入

Void

(

注意 V 為大寫

)。

AsyncTask

的運作有 4 個階段:

onPreExecute

--

AsyncTask

執行前的準備工作,例如畫面上顯示進度表,

doInBackground

-- 實際要執行的程式碼就是寫在這裡,

onProgressUpdate

-- 用來顯示目前的進度,

onPostExecute

-- 執行完的結果 -

Result

會傳入這裡。

results matching ""

    No results matching ""