編輯:關於Android編程
異步任務是為了在新線程中修改UI組件而提供的,當然為了解決這個問題我們還可以用Handler實現線程之間的通信。但異步任務為我們提供了一種進一步簡化的方式。
使用AsyncTask的步驟如下:
1.在UI線程中創建AsyncTask的子類(必須在UI線程中創建),指定三個泛型參數:不需要的可以指定為Void
Params:啟動任務執行的輸入參數的類型。
Progress:後台任務完成的進度值的類型。
Result:後台任務完成後返回結果的類型。
2.實現AsyncTask的如下方法(這些方法都是Android系統負責調用的,不需要程序員去調用):
doInBackground(Params... params):是後台線程需要完成的任務。在onPreExecute後執行。此方法將接收輸入參數和返回計算結果。在執行過程中可以調用publishProgress(Progress... values)來更新進度信息。
onProgressUpdate(Progress... values):在調用publishProgress(Progress... values)時,此方法被執行,直接將進度信息更新到UI組件上。
onPreExecute():在執行後台線程的任務前調用。一般用於完成一些初始化操作。
onPostExecute(Result result):在執行後台線程的任務後調用。在doInBackground後執行。
3.調用AsyncTask子類的execute()方法開始執行後台任務。(必須在UI線程中調用)
需要注意的是AsyncTask只能調用一次,多次調用會拋出異常。
一、分析1、最簡單的布局:只有一個ListView如果整個頁面只有一個ListView的話,那麼由於ListView本身帶有滾動效果,所以當加載的數據超過頁面顯示的范圍時
Android開發四大組件分別是:活動(Activity):用於表現功能。服務(Service):後台運行服務,不提供界面呈現。廣播接收器(BroadcastReceiv
1 概述在Android中,我們常常使用PendingIntent來表達一種“留待日後處理”的意思。從這個角度來說,PendingIntent可以
1. Activity的onDestory()在Activity關閉時一定會被調用嗎?There are situations where the system will