首页 > 代码库 > Android学习笔记(十四) Handler理论补充

Android学习笔记(十四) Handler理论补充

一、如何下载Android源码

  在SDK Manager中选中Sources for Android SDK。

二、ThreadLocal初步介绍

  1)执行ThreadLocal对象(static final ThreadLocal sThreadLocal)的set(Object obj)方法,将会向存入一个以当前线程为键的键值对。

  2)执行ThreadLocal对象的get()方法,将会根据当前线程对象为键,取出与之对应的值。

  在之前提到的Looper方法调用中:

  执行Looper.prepare时,系统会生成一个Looper对象,然后和当前线程通过ThreadLocal存储(set)起来。生成Handler对象时,又根据线程名将Looper对象取(get)出来,然后赋值给Handler对象的mLooper成员变量。因此Looper和Handler的关系是通过ThreadLocal联系起来的

  生成Looper对象时会生成一个与之相对应的MessageQueue对象。之后生成Handler对象时,将Looper对象和MessageQueue对象都赋值给Looper的成员变量。

Android学习笔记(十四) Handler理论补充