Android --- handler详解

devtools/2025/2/7 19:37:18/

handler 理解

 handler 是一套Android 消息传递机制,主要用于线程间通信。

tips: binder/socket 用于进程间通信。

参考:

Android 进程间通信-CSDN博客

handler 就是主线程在起了一个子线程,子线程运行并生成message ,looper 获取message 并传递给handler ,handler 逐个获取子线程中的message 。

相关概念

Handler       Message      MessageQueue       looper   ThreadLocal

Handler

handler : 消息真正的处理者,具备获取消息,发送消息,处理消息,移除消息等功能。

Message

Message ( C层和java层都有实现 ): 代表一个行为 what 或者一串runnable ,每一个消息加入队列都有明确的目标handler 。

MessageQueue

MessageQueue( C层和java层都有实现 ) :以队列形式对外提供插入和删除工作,其内部是单向链表形式存储消息。 

Looper

Looper :looper 是循环的意思,它负责消息循环队列中取出消息交给handler 。

ThreadLocal

ThreadLocal: 线程本地存储(Thread local storage  简称: tsl) 每个线程都有自己私有的本地本地存储区域。不同线程之间不能访问对方的本地存储区域。意思就是线程隔离。

handler原理

实际使用讲解

结束。


http://www.ppmy.cn/devtools/156911.html

相关文章

使用 postman 测试思源笔记接口

思源笔记 API 权鉴 官方文档-中文:https://github.com/siyuan-note/siyuan/blob/master/API_zh_CN.md 权鉴相关介绍截图: 对应的xxx,在软件中查看 如上图:在每次发送 API 请求时,需要在 Header 中添加 以下键值对&a…

MySQL5.5升级到MySQL5.7

【卸载原来的MySQL】 cmd打开命令提示符窗口(管理员身份)net stop mysql(先停止MySQL服务) 3.卸载 切换到原来5.5版本的bin目录,输入mysqld remove卸载服务 测试mysql -V查看Mysql版本还是5.5 查看了环境变量里的…

npx tailwindcss init报错npm error could not determine executable to run

PS D:\front-project\vue-cli-demo> npx tailwindcss init npm error could not determine executable to run npm error A complete log of this run can be found in: C:\Users\75364\AppData\Local\npm-cache_logs\2025-02-06T01_07_09_313Z-debug-0.log 遇到这个错&…

网络安全-防御 第一次作业(由于防火墙只成功启动了一次未补截图)

防火墙安全策略课堂实验报告 一、拓扑 本实验拓扑包含预启动设备、DMZ区域(含OA Server和Web Server)、防火墙(FW1)、Trust区域(含办公区PC和生产区PC)等。具体IP地址及连接关系如给定拓扑图所示&#xf…

计算机网络 应用层 笔记1(C/S模型,P2P模型,FTP协议)

应用层概述: 功能: 常见协议 应用层与其他层的关系 网络应用模型 C/S模型: 优点 缺点 P2P模型: 优点 缺点 DNS系统: 基本功能 系统架构 域名空间: DNS 服务器 根服务器: 顶级域…

2025年02月01日Github流行趋势

项目名称:oumi 项目地址url:https://github.com/oumi-ai/oumi 项目语言:Python 历史star数:544 今日star数:103 项目维护者:xrdaukar, oelachqar, taenin, wizeng23, kaisopos 项目简介:一切你需…

第20篇:Python 开发进阶:使用Django进行Web开发详解

第20篇:使用Django进行Web开发 内容简介 在上一篇文章中,我们深入探讨了Flask框架的高级功能,并通过构建一个博客系统展示了其实际应用。本篇文章将转向Django,另一个功能强大且广泛使用的Python Web框架。我们将介绍Django的核…

计算机网络之物理层通信基础(电路交换、报文交换与分组交换)

一、电路交换 工作原理: 电路交换是在数据传输期间,源结点与目的结点之间建立一条由中间结点构成的专用物理连接线路,并在数据传输结束之前保持这条线路。整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。 特点&am…