Handler:
是一种消息处理机制
为什么处理消息:用于更新UI
Handler是Android提供的一种异步回调处理消息机制
通常Handler是在Activity/Fragment中使用,进行消息的处理
Handler handler = new Handler(){}
handler通常通过:
1 public Handler(){}
2 public Handler(Looper loop){}
3 public Handler(Looper loop,Callback c){}
4 public Handler(Looper loop,Callback c,boolean async){
不管handler怎么调用,最后都是回到这个方法中
}
主线程通过无参方法调用时,不会空指针的原因是laucher(是一个特殊的Activity)
点击时调用onClickListener(View v);会判断其坐标,判断是哪一个App发出的请求
Application启动会通过Socket长链接,通知Zygote()进程判断这个Application是否存在
不存在的话就会fork(反射)自身并返回Application的实例,在ActivityThread中的main方法中
在子线程中会调用looper.prepareMainLooper();Trace Looper.loop()方法,通过这个方法就会连接自身的构造,调用looper.loop()方法的时候,会调用MessageQueue消息队列,当MessageQueue发送消息的时候,会调用enqueueMessage()消息入队,然后调用looper.loop出队,调用Message msg = messageQueue.next();如果这个消息队列为空,就结束这个循环
当Handler发送消息的时候,会在MessageQueue中判断是否有没有
有直接返回,没有就调用obtaio()创建
各位大佬有哪些更好的建议,欢迎提出