asyncTask的參數
- Params
在執行 AsyncTask 時需要傳入的參數,可用於在後臺任務中使用。 - Progress
後臺任務執行時,如果需要在界面上顯示當前的進度,則使用這裏指定的泛型作爲 進度單位。 - Result
當任務執行完畢後,如果需要對結果進行返回,則使用這裏指定的泛型作爲返回值 類型。
asyncTask需要重寫的方法
- onPreExecute()
用於進行一些界面上的初始化操作,
比如顯示一個進度條對話框等。 - doInBackground(Params…)
這個方法中的所有代碼都會在子線程中運行,
任務一旦完成就可以通過 return 語句來將任務的執行結果返回,如果 AsyncTask 的 第三個泛型參數指定的是 Void,就可以不返回任務執行結果。注意,在這個方法中是不 可以進行 UI 操作的,如果需要更新 UI 元素,比如說反饋當前任務的執行進度,可以調 用 publishProgress(Progress…)方法來完成。 - onProgressUpdate(Progress…)
當在後臺任務中調用了 publishProgress(Progress…)方法後,這個方法就會很快被調
用,方法中攜帶的參數就是在後臺任務中傳遞過來的。在這個方法中可以對 UI 進行操 作,利用參數中的數值就可以對界面元素進行相應地更新。 - onPostExecute(Result)
當後臺任務執行完畢並通過 return 語句進行返回時,這個方法就很快會被調用。返 回的數據會作爲參數傳遞到此方法中,可以利用返回的數據來進行一些 UI 操作,比如 說提醒任務執行的結果,以及關閉掉進度條對話框等。
使用 AsyncTask 的訣竅就是
在 doInBackground()方法中去執行具體的耗時任務,
在 onProgressUpdate()方法中進行 UI 操作,
在 onPostExecute()方法中執行一些任務的 收尾工作。
啓動這個任務,new DownloadTask().execute();