簡(jiǎn)介
目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、武漢網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。Android給我們提供了一種輕量級(jí)的異步任務(wù)類(lèi)AsyncTask。該類(lèi)中實(shí)現(xiàn)異步操作,并提供接口反饋當(dāng)前異步執(zhí)行結(jié)果及進(jìn)度,這些接口中有直接運(yùn)行在主線程中的(如 onPostExecute,onPreExecute等)。
AsyncTask可以輕松正確的使用UI線程,這個(gè)類(lèi)允許你在后臺(tái)操作,并且不需要使用threads或者h(yuǎn)andler將結(jié)果發(fā)布到UI線程。
AsyncTask設(shè)計(jì)之初就是輔助Thread和Handler的,并且不會(huì)生成線程。AsyncTask應(yīng)該被用于短時(shí)間內(nèi)的操作(最多幾秒鐘),如果你想要長(zhǎng)時(shí)間保持線程運(yùn)行,請(qǐng)使用Executor或者ThreadPoolExecutor或者FutureTask。
AsyncTask在后臺(tái)運(yùn)行任務(wù),在UI線程發(fā)布結(jié)果,定義三個(gè)參數(shù),Params, Progress和Result,執(zhí)行四個(gè)步驟,onPreExecute, doInBackground, onProgressUpdate和onPostExecute。
使用方法
AsyncTask必須被繼承來(lái)使用。子類(lèi)必須實(shí)現(xiàn)至少一個(gè)方法(ddoInBackground(Params…))
,還有一個(gè)最常用的方法(onPostExecute(Result)
。
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> { protected Long doInBackground(URL... urls) { int count = urls.length; long totalSize = 0; for (int i = 0; i < count; i++) { totalSize += Downloader.downloadFile(urls[i]); publishProgress((int) ((i / (float) count) * 100)); // Escape early if cancel() is called if (isCancelled()) break; } return totalSize; } protected void onProgressUpdate(Integer... progress) { setProgressPercent(progress[0]); } protected void onPostExecute(Long result) { showDialog("Downloaded " + result + " bytes"); } }
新聞名稱(chēng):AsyncTask官方文檔教程整理-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://muchs.cn/article10/ddsedo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、用戶體驗(yàn)、網(wǎng)站內(nèi)鏈、面包屑導(dǎo)航、微信小程序、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容