1. 如何下载Android源代码
2. ThreadLocal初步介绍
3. Handler相关代码执行流程
吧
1. 如何下载Android源代码
SDK Manager下载, 下图所示
下载完之后在文件夹
2. ThreadLocal初步介绍
线程本地变量
代码回顾
1 <pre> 2 * class LooperThread extends Thread { 3 * public Handler mHandler; 4 * 5 * public void run() { 6 * Looper.prepare(); 7 * 8 * mHandler = new Handler() { 9 * public void handleMessage(Message msg) { 10 * // process incoming messages here 11 * } 12 * }; 13 * 14 * Looper.loop(); 15 * } 16 * }</pre>
Looper、Thread、Handler一一对应, 一个Looper存在于一个Thread中
3. Handler相关代码执行流程
查看相关方法的具体代码, 可知
1 class LooperThread extends Thread { 2 public Handler mHandler; 3 public void run() { 4 Looper.prepare(); //生成Looper对象, 并把Looper与当前线程对象形成键值对, 存放在ThreadLocald 当中 5 mHandler = new Handler() //生成Handler对象, 调用Loop的MyLooper方法,根据键得到与Handler对应的Looper对象取出来(从ThreadLocal中取出) 6 { 7 //实际上,Looper和Handler之间是通过ThreadLocal建立一一对应的连接 8 public void handleMessage(Message msg) { 9 // process incoming messages here 10 } 11 }; 12 Looper.loop(); //循环从消息队列往外读数据 13 } 14 }