AsyncTask解析
2017-03-13 本文已影响7人
尔乐
在发布结果的时候,用到了handler
postResult(Result result){
Message message=getHandler().obtainMessage(MESSAGE_POST_RESULT,new AsyncTaskResult<Result>(this,result));//传进去this,用于跟handler里面再跟当前实例进行调用。
message.sendToTarget();
return result;
}
这里的getHandler()是获取了InternalHandler的实例。
//InternalHandler是一个主线程的Handler
public InternalHandler(){
super(Looper.getMainLooper);
}
AsyncTask是一次性的,一个实例只能被执行一次,再次执行会因为状态不对,抛出异常,
或者已经运行running,或者finished