在發(fā)布結(jié)果的時候,用到了handler
postResult(Result result){
Message message=getHandler().obtainMessage(MESSAGE_POST_RESULT,new AsyncTaskResult<Result>(this,result));//傳進(jìn)去this,用于跟handler里面再跟當(dāng)前實(shí)例進(jìn)行調(diào)用。
message.sendToTarget();
return result;
}
這里的getHandler()是獲取了InternalHandler的實(shí)例。
//InternalHandler是一個主線程的Handler
public InternalHandler(){
super(Looper.getMainLooper);
}
AsyncTask是一次性的,一個實(shí)例只能被執(zhí)行一次,再次執(zhí)行會因?yàn)闋顟B(tài)不對,拋出異常,
或者已經(jīng)運(yùn)行running,或者finished