為甚么要異步任務(wù)?
1.Android是單線程模型
2.耗時(shí)操作要放在非主線程里面執(zhí)行
構(gòu)建Asynctask子類的參數(shù)
1、asynctask<Params,Progress,Result>是一個(gè)抽象類,
通常用于被繼承,繼承AsyncTask需要指定如下三個(gè)泛型參量:
Params:啟動任務(wù)時(shí)輸入?yún)?shù)的類型。
Progress:后臺執(zhí)行任務(wù)中返回進(jìn)度值的類型。
Result:任務(wù)執(zhí)行完畢需要進(jìn)行返回的指定的泛型作為返回值。
2.重寫四個(gè)方法:
1、onPreExecute:執(zhí)行之前調(diào)用。
2、doInBackground(Params):子線程中運(yùn)行的任務(wù)放在這里,用return語句返回結(jié)果。注意:這里是不能進(jìn)行UI操作的。
3、onProgressUpdate(Progress):在后臺任務(wù)中調(diào)用publishProgress(progress)方法后,這個(gè)方法會被調(diào)用,可以對UI進(jìn)行操作。
4、onPostExecute(Result):后臺任務(wù)執(zhí)行完畢并返回值時(shí),這個(gè)方法會被調(diào)用。