安卓市場(chǎng)下載 AsyncTask使用在哪些場(chǎng)景?它的缺陷是什么?如何解決?
AsyncTask使用在哪些場(chǎng)景?它的缺陷是什么?如何解決?使用asynctask的場(chǎng)景是執(zhí)行一些耗時(shí)的操作,在耗時(shí)的操作完成后更新主線程,或者在操作期間更新主線程的UI。缺陷:asynctask維護(hù)
AsyncTask使用在哪些場(chǎng)景?它的缺陷是什么?如何解決?
使用asynctask的場(chǎng)景是執(zhí)行一些耗時(shí)的操作,在耗時(shí)的操作完成后更新主線程,或者在操作期間更新主線程的UI。缺陷:asynctask維護(hù)一個(gè)長(zhǎng)度為128的線程池,可以同時(shí)執(zhí)行5個(gè)工作線程,并且有一個(gè)緩沖隊(duì)列。當(dāng)線程池中有128個(gè)線程且緩沖區(qū)隊(duì)列已滿時(shí),如果此時(shí)將任務(wù)提交給線程,則會(huì)引發(fā)rejectedexecutionexception。解決方案:使用控制線程處理asynctask的調(diào)用,判斷線程池是否已滿。如果已滿,線程將休眠。否則,它將請(qǐng)求asynctask繼續(xù)處理。