【移動應用開發(fā)技術】android AsyncTask介紹_第1頁
【移動應用開發(fā)技術】android AsyncTask介紹_第2頁
【移動應用開發(fā)技術】android AsyncTask介紹_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

【移動應用開發(fā)技術】androidAsyncTask介紹

AsyncTask和Handler對比1)AsyncTask實現(xiàn)的原理,和適用的優(yōu)缺點AsyncTask,是android提供的輕量級的異步類,可以直接繼承AsyncTask,在類中實現(xiàn)異步操作,并提供接口反饋當前異步執(zhí)行的程度(可以通過接口實現(xiàn)UI進度更新),最后反饋執(zhí)行的結果給UI主線程.使用的優(yōu)點:l

簡單,快捷l

過程可控

使用的缺點:l

在使用多個異步操作和并需要進行Ui變更時,就變得復雜起來.2)Handler異步實現(xiàn)的原理和適用的優(yōu)缺點在Handler異步實現(xiàn)時,涉及到Handler,Looper,Message,Thread四個對象,實現(xiàn)異步的流程是主線程啟動Thread(子線程)àthread(子線程)運行并生成Message-àLooper獲取Message并傳遞給HandleràHandler逐個獲取Looper中的Message,并進行UI變更。使用的優(yōu)點:l

結構清晰,功能定義明確l

對于多個后臺任務時,簡單,清晰

使用的缺點:l

在單個后臺異步處理時,顯得代碼過多,結構過于復雜(相對性)

AsyncTask介紹Android的AsyncTask比Handler更輕量級一些,適用于簡單的異步處理。首先明確Android之所以有Handler和AsyncTask,都是為了不阻塞主線程(UI線程),且UI的更新只能在主線程中完成,因此異步處理是不可避免的。

Android為了降低這個開發(fā)難度,提供了AsyncTask。AsyncTask就是一個封裝過的后臺任務類,顧名思義就是異步任務。AsyncTask直接繼承于Object類,位置為android.os.AsyncTask。要使用AsyncTask工作我們要提供三個泛型參數(shù),并重載幾個方法(至少重載一個)。

AsyncTask定義了三種泛型類型Params,Progress和Result。Params啟動任務執(zhí)行的輸入?yún)?shù),比如HTTP請求的URL。Progress后臺任務執(zhí)行的百分比。Result后臺執(zhí)行任務最終返回的結果,比如String。使用過AsyncTask的同學都知道一個異步加載數(shù)據(jù)最少要重寫以下這兩個方法:doInBackground(Params…)后臺執(zhí)行,比較耗時的操作都可以放在這里。注意這里不能直接操作UI。此方法在后臺線程執(zhí)行,完成任務的主要工作,通常需要較長的時間。在執(zhí)行過程中可以調(diào)用publicProgress(Progress…)來更新任務的進度。onPostExecute(Result)

相當于Handler處理UI的方式,在這里面可以使用在doInBackground得到的結果處理操作UI。此方法在主線程執(zhí)行,任務執(zhí)行的結果作為此方法的參數(shù)返回有必要的話你還得重寫以下這三個方法,但不是必須的:onProgressUpdate(Progress…)

可以使用進度條增加用戶體驗度。此方法在主線程執(zhí)行,用于顯示任務執(zhí)行的進度。onPreExecute()

這里是最終用戶調(diào)用Excute時的接口,當任務執(zhí)行之前開始調(diào)用此方法,可以在這里顯示進度對話框。onCancelled()

用戶調(diào)用取消時,要做的操作使用AsyncTask類,以下是幾條必須遵守的準則:Task的實例必須在UIthread中創(chuàng)建;execute方法必須在UIthread中調(diào)用;不要手動的調(diào)用onPreExecute(),onPostExecute(Result),doInBackg

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論