Android HandlerThread、Looper、Handler类关系分析

对应的类图及各类的职责如下:
HandlerThread的惯常用法:
ThreadHandler的looper是在执行run时赋值的,上述代码为何可保证new Handler时getLooper不是null呢,看下HandlerThread.getLooper实现:
在run给mLooper赋值后,便会做notifyAll操作
其中prepare负责创建当前线程的looper实例,并以TLS形式保存(空间换时间的策略), Looper.loop便以while(true)的方式启动消息接收流程,执行quit操作时,会导致queue.next()返回null,loop break,线程的生命周期终结。

posted on 2015-10-05 11:47  熊猫观星  阅读(764)  评论(0编辑  收藏  举报

导航