[java]
private void finish(Result result) { if (isCancelled()) result = null; onPostExecute(result);// 注意。。执行了onPostExecute mStatus = Status.FINISHED; } 至此我们发现上文提到onPreExecute() ----》doInBackground()------》onPostExecute()基本流程方法都游走一边
还剩下两个刷新进度的 : onProgressUpdate()和publishProgress();
[java]
protected final void publishProgress(Progress... values) { sHandler.obtainMessage(MESSAGE_POST_PROGRESS, new AsyncTaskResult<Progress>(this, values)).sendToTarget(); } 从这个方法很容易看出,其实他就是一个Handler消息发送的实现。网上一般说可以在doInBackground()调用该方法,然后再回过去看handler实例化那段代码
case MESSAGE_POST_PROGRESS:
result.mTask.onProgressUpdate(result.mData);
break;
执行了onProgressUpdate()
该类出现了FutureTask以及callable等java中的类。因为手边没有java 源码。没有细细读下
整个流程大致如上。