一、

*  class LooperThread extends Thread {
* public Handler mHandler;
*
* public void run() {
* Looper.prepare();
*
* mHandler = new Handler() {
* public void handleMessage(Message msg) {
* // process incoming messages here
* }
* };
*
* Looper.loop();
* }
* }

上述代码的执行流程为

1.Looper.prepare()会执行sThreadLocal.set(new Looper(quitAllowed))

2.而new Looper(quitAllowed)会执行,

(1)mQueue = new MessageQueue(quitAllowed);

(2)mThread = Thread.currentThread();

3.new Handler()会执行

(1)mLooper = Looper.myLooper();

(2)mQueue = mLooper.mQueue;

4.而myLooper();会执行return sThreadLocal.get();,所以保证handler当前线程只有一个looper

5.Looper.loop();会执行

(1)final MessageQueue queue = me.mQueue;

(2)for循环Message msg = queue.next();

(3)msg.target.dispatchMessage(msg);

最新文章

  1. swift 简介和常量与变量 --- swift 入门
  2. Unity自动寻路Navmesh之入门
  3. iOS常见用户头像的圆形图片裁剪常见的几种方法
  4. linux----------ab--性能测试工具
  5. repcache实现memcached主从
  6. struts2学习笔记之十三:自定义过滤器
  7. adb server is out of date killing... 的解决办法
  8. 更新日志 - fir.im 回归,上线 Android Studio 插件
  9. Windows Store 开发总结——文件操作
  10. 一点点seo
  11. Unity3D之Mecanim动画系统学习笔记(十一):高级功能应用
  12. Javascript数据类型——number类型
  13. Java基础知识强化之集合框架笔记15:List集合的特点
  14. u8818 G300的官方rom刷机包及详细的刷机方法
  15. 51单片机C语言学习笔记8:单片机C51编程规范
  16. react视频入门
  17. Swift: Alamofire -> http请求 & ObjectMapper -> 解析JSON
  18. python迭代器生成器(一)
  19. Go实现海量日志收集系统(四)
  20. PyCharm中Django项目主urls导入应用中views的红线问题

热门文章

  1. HTML文本格式化
  2. 双程动态规划 nyoj61
  3. ACM/ICPC ZOJ1003-Crashing Balloon 解题代码
  4. OC与Swift的区别二(常量、变量、运算符)
  5. CSS 的选择符
  6. javascript 函数学习
  7. javascript dom编程艺术笔记第三章:DOM操作的5个基本方法
  8. 解码一个加密的js文件
  9. cinder
  10. Django 创建第一个项目(转)