AsyncTask的使用和原理分析网上有很多文章写得非常清楚,这里大概画了下时序图(不求准确),帮助理解。MyAsyncTask是自定义AsyncTask的子类,AsyncTask_Thread是线程池执行器创建的执行线程,线程以AsyncTask#count命名。从时序图可以看出doInBackground()、publishProgress()是在AsyncTask#count线程中被调用的,onPreExecute()、onProgressUpdate()、onPostExecute()、onCancelled()是在主线程MainThread中被调用。InterHandler的Looper指向主线程MainThread的Looper,AsyncTask#count线程便是通过InterHandler发送消息触发主线程调用相关onXXX()回调。
相关文章分享:
Android AsyncTask完全解析,带你从源码的角度彻底理解:
Android实战技巧:深入解析AsyncTask:
详解Android中AsyncTask的使用: