AsyncTask類淺析

使用AsyncTask類遵守的準則:

1  Task的實例必須在UI thread中創建;

2  Execute方法必須在UI thread中調用;
3  不要手動的調用onPfreexecute(),onPostExecute(result)Doinbackground(params…),onProgressupdate(progress…)這幾個方法;
4 該task只能被執行一次,否則多次調用時將會出現異常;

AsyncTask的整個調用過程都是從execute方法開始的,一旦在主線程中調用execute方法,就可以通過onpreExecute方法,這是一個預處理方法,比如可以在這裏開始一個進度框,同樣也可以通過onprogressupdate方法給用戶一個進度條的顯示,增加用戶體驗;最後通過onpostexecute方法,相當於handler處理UI的方式,在這裏可以使用在doinbackground得到的結果處理操作UI。此方法在主線程執行,任務執行的結果作爲此方法的參數返回。


此外,AsyncTask底層是一個線程池 而Handler僅僅就是發送了一個消息隊列,連線程都沒有開。但是,如果異步任務的數據特別龐大,AsyncTask這種線程池結構的優勢就體現出來了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章