溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

AsyncTask類淺析

發(fā)布時間:2020-07-05 20:04:18 來源:網(wǎng)絡(luò) 閱讀:246 作者:beginnerjyh 欄目:移動開發(fā)

使用AsyncTask類遵守的準則:

1  Task的實例必須在UI thread中創(chuàng)建;

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

AsyncTask的整個調(diào)用過程都是從execute方法開始的,一旦在主線程中調(diào)用execute方法,就可以通過onpreExecute方法,這是一個預(yù)處理方法,比如可以在這里開始一個進度框,同樣也可以通過onprogressupdate方法給用戶一個進度條的顯示,增加用戶體驗;最后通過onpostexecute方法,相當于handler處理UI的方式,在這里可以使用在doinbackground得到的結(jié)果處理操作UI。此方法在主線程執(zhí)行,任務(wù)執(zhí)行的結(jié)果作為此方法的參數(shù)返回。


此外,AsyncTask底層是一個線程池 而Handler僅僅就是發(fā)送了一個消息隊列,連線程都沒有開。但是,如果異步任務(wù)的數(shù)據(jù)特別龐大,AsyncTask這種線程池結(jié)構(gòu)的優(yōu)勢就體現(xiàn)出來了。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI