作用:把一个任务切换到某个线程中去执行。
为什么不能在子线程更新Ui?
因为UI控件是线程不安全的,加锁又会导致效率下降。因此要采用单线程模型处理。
ThreadLocal 不同的线程有不同的数据副本,数据以线程为作用域。
当子线程的looper不用的时候应该手动退出。
looper.quitQuietly;处理完队列中已有的之后退出。
looper.quit;直接退出
主线程的消息循环:
ActivityThread通过ApplicationThread和AMS通信,完成请求后回调ApplicationThread的中Binder,向H发消息,H收到消息后将逻辑奇幻到ActivityThread执行。这既是主线程的消息循环。
[参考](http://blog.youkuaiyun.com/amurocrash/article/details/48858353)