![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android Handler机制
文章平均质量分 95
借用大佬一句话:死磕Handler……
叫我王员外就行
我的个人笔记,如果有幸对您有帮助,欢迎点赞…………
展开
-
Android之MessageQueue源码分析(第一篇:创建对象)
0、只能用欣赏大神们的代码了,MessageQueue is a class,package位于为 androtid.os 。 代码共计800+行。1、MessageQueue是一个单链表组成的优先级队列,既然是单链表,那么结点类是哪个?答:就是Message2、大神牛逼package android.os;import android.annotation.In...原创 2020-03-11 00:08:32 · 356 阅读 · 0 评论 -
Android之Message源码分析(第二篇:消息池)
public static final Object sPoolSync = new Object(); private static Message sPool; private static int sPoolSize = 0; private static final int MAX_POOL_SIZE = 50; private static ...原创 2020-03-10 23:23:19 · 673 阅读 · 2 评论 -
Android之Message源码分析(第一篇:创建对象)
Message位于android/os/Message.java文件中构造方法,1个obtain系列方法,共计8个0、无参构造方法 public Message() { }官方明确说明创建Message对象时不要使用构造方法,而是使用它提供的obtain系列方法1、无参数 public static Message obta...原创 2020-03-05 19:39:54 · 1655 阅读 · 2 评论 -
Android之Handler源码分析(第六篇:其他特性)
上面两个,API >= 28时可使用,Android9.0增加的方法,也同样可以创建Handler原创 2020-03-05 11:12:10 · 320 阅读 · 0 评论 -
Android之Handler源码分析(第五篇:移除消息)
移除消息的方法,一共5个0、一个参数,接受一个int值 public final void removeMessages(int what) { mQueue.removeMessages(this, what, null); }局部变量what持有的int值最终会传入到Handler持有的MessageQueue对象mQueue的remov...原创 2020-03-05 10:54:48 · 2172 阅读 · 0 评论 -
Android之Handler源码分析(第四篇:分派消息与处理消息)
0、一个参数,接受一个Message对象 public void dispatchMessage(Message msg) { if (msg.callback != null) { handleCallback(msg); } else { if (mCallback != null) {...原创 2020-12-17 21:11:40 · 576 阅读 · 0 评论 -
Android之Handler源码分析(第三篇:发送消息->post系列方法)
post系列的方法:6个0、一个参数,接受一个Runnable对象 public final boolean post(Runnable r) { return sendMessageDelayed(getPostMessage(r), 0); }首先将传入的Runnable对象,立刻传入到一个叫做getPostMessage的方法(见...原创 2020-03-05 00:48:36 · 622 阅读 · 0 评论 -
Android之Handler源码分析(第二篇:发送消息->send系列方法)
send系列的方法:8个post系列的方法:6个(另一篇总结)0、一个参数,接受一个int值 public final boolean sendEmptyMessage(int what) { return sendEmptyMessageDelayed(what, 0); }内部调用了sendEmptyMessageDela...原创 2020-12-15 23:05:52 · 1780 阅读 · 3 评论 -
Android之Looper源码分析(第一篇:创建Looper对象)
Looper提供了两个public的方法,用于创建Looper对象,它的构造方法是private修饰的 private Looper(boolean quitAllowed) { mQueue = new MessageQueue(quitAllowed); mThread = Thread.currentThread(); }0、...原创 2021-01-19 23:57:21 · 1668 阅读 · 0 评论 -
Android之Handler源码分析(第一篇:创建对象)
0、创建一个Handler对象,有多达7种构造方法供你使用,Handler类位于android/os/Handler.java文件中1、无参构造方法(常用) public Handler() { this(null, false); }这也是我们最常用的一个构造方法,它又调用两个参数的构造方法2、两个参数构造方法 publ...原创 2020-03-04 22:40:58 · 299 阅读 · 0 评论