【安卓篇】线程间通信之Message
来源:互联网 发布:js页面加载时执行函数 编辑:程序博客网 时间:2024/05/16 18:14
(一)、MessageQueue
消息队列,用于存放消息对象,按照FIFO规则执行,每一个线程只能拥有一个MessageQueue,在创建Looper对象时会创建MessageQueue对象。
一个MessageQueue中包含多个Message对象。可以通过Message.obtain()或者Handler.obtainMessage()获取Message对象。但是这并非直接创建一个新的实例,而是先从消息池中看有没有可用的Message实例,存在则直接取出返回该实例。不存在可用的Message实例,则用给定参数创建一个Message对象。调用removeMessage()时,将Message从MessageQueue中删除,同时放入到消息池中。
(二)、Looper
用于操作MessageQueue。一个Looper对应一个MessageQueue。
通过调用Looper.myLooper()可以获得当前线程的Looper对象,Looper.getMainLooper()获得主线程的Looper对象。Looper从MessageQueue中取出Message,然后交由Handler的HandleMessage()进行处理。处理完成之后,调用Message.recycle()将其放入消息中。
(三)、Handler
消息的矗立着。handler负责将需要传递的信息封装成Message对象,然后调用sendMessage()方法将消息放入MessageQueue中,当MessageQueue循环倒该Message,调用相应的handler对象的handleMessage()方法对其进行处理。
多个Handler可共享同一个Looper和MessageQueue。
- 【安卓篇】线程间通信之Message
- Android线程间通信的Message机制
- Android线程间通信的Message机制
- Android线程间通信的Message机制
- 基于Message的线程间通信实例
- Android线程间通信(一):Message
- 子线程与主线程通信之Thread-Handler-Message
- 活用Android线程间通信的Message机制
- 活用Android线程间通信的Message机制
- 1.活用Android线程间通信的Message机制
- 线程间通信的消息机制的Message和Handler
- Android的线程间通信Hanlder、Looper、Message、MessageQueue
- Handler、Message、Looper等Android线程通信
- 线程间通信之事件
- android之线程间通信
- iOS之线程间通信
- Android之线程间通信
- iOS之线程间通信
- 他地图就有今天都已经有
- 归并排序 merge sort
- UIView中动画及其属性说明
- IOS-UIDynamic-UIKit动力学(整合版)
- LeetCode: Best Time to Buy and Sell Stock
- 【安卓篇】线程间通信之Message
- 快速排序 quick sort
- Log4j输出终端(Appender)详解
- Linux中让进程在后台运行的方法
- 求关键路径(AOE)
- Android 学习笔记17:Handler,Looper,Message原理
- gdfgdhjfjfdjnfd
- 毕业这三年
- 方大哥回范德萨噶尔法规和他和好复该哈弗大vkjfa