Android 异步操作AsyncTask(3)

[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  源码。没有细细读下

整个流程大致如上。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyggpp.html