浅析Android Handle机制

一.Handle的用例:

1.创建handle实例

new handle();

2.发送信息载体(Message)

sendMessage(msg);

3.处理消息

handleMessage(Message msg){};


二.原理浅析

结合以上的handle调用三部曲,我们将顺藤摸瓜理清Handle、Looper、Message、MessageQueue的逻辑与关系。

1.new Handle():这个操作将生成一个Handle实例,handle实例有三个属性mLooper、mQueue、mCallback,以下解释这三个属性的来历。

1.a:
mLooper = Looper.myLooper();Looper的myLooper静态方法也很简单、
public static Looper myLooper() {
 return sThreadLocal.get();
}

sThreadLocal是一个单例对象,他的类型是ThreadLocal<Looper>,这个类有set()、get()方法,他的作用是当前线程的对象,那么这句代码的作用很明显了就是返回当前线程的Looper对象。再深入一点想,他的set方法在哪里呢?答案是在prepare中:

private static void prepare(boolean quitAllo
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值