Message对象创建的方式有哪些, 区别?
- 直接new一个
- obtain()方法获取
- handler.obtainMessage()方法获取。
下面两个方式是从对象池中获取,可以避免message对象重复的创建。
Message.obtain()怎么维护消息池的Handler ?
消息池使用Message 链表结构实现,消息池默认最大值 50。消息在loop中被handler分发消费之后会执行回收的操作,将该消息内部数据清空并添加到消息链表的表头。
Handler 发送消息的方法?
Handler 有多种发送消息的方法,包括 sendMessage()、sendMessageDelayed()、sendEmptyMessage()、sendEmptyMessageDelayed() 等。这些方法的主要区别在于是否延迟发送消息以及是否携带数据。