用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
SQL-Server
›
Android 线程并发:线程通讯:Handler机制
Android 线程并发:线程通讯:Handler机制
曂沅仴駦
论坛元老
|
2024-7-28 17:29:45
|
显示全部楼层
|
阅读模式
楼主
主题
1735
|
帖子
1735
|
积分
5205
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
文章目录
API
源码分析
操作
总结
API
Handler相关
Handler对象.sendMessage(Message)
发送消息
Handler对象.handleMessage()空方法
自定义Handler重写handleMessage方法,处理Message
Looper相关
Looper.getMainLooper()
获取App的UI线程的Looper对象
Looper.prepare()
创建Looper对象
Looper.loop()
开启死循环
Looper.myLooper()
获取当前线程的Looper对象
Looper.myQueue() /Looper对象.getQueue()
获取MessageQueue对象
Looper对象.getThread()
获取Thread对象
HandlerThread
HandlerThread对象.getLooper()
获取HandlerThread对象对应的Looper对象
源码分析
Looper、MessageQueue、Handler的类关系
一个Thread对应一个Looper
一个Looper对应一个MessageQueue
一个MessageQueue对应多个Handler
Handler负责
1.向MessageQueue添加Message
Handler.sendMessage
2.保存Message对应的处理代码
Handler.handleMessage()
MessageQueue负责存储Message
Looper负责死循环MessageQueue
从MessageQueue获取Message,在对应线程中执行Message对应的Handler保存的处理代码
Looper
持有一个ThreadLocal<Looper>的静态对象sThreadLocal,用于保证一个线程持有一个Looper对象
持有一个MessageQueue对象mQueue
HandlerThread
继承Thread, 重写run()方法
public void run() {
mTid = Process.myTid();
Looper.prepare();
synchronized (this) {
mLooper = Looper.myLooper();
notifyAll();
}
Process.setThreadPriority(mPriority);
onLooperPrepared();
Looper.loop();
mTid = -1;
}
复制代码
操作
自定义Thread实现Looper循环
Looper.prepare();
Looper.loop();
复制代码
创建Handler,绑定当前线程的Looper
new Handler();
复制代码
创建Handler,绑定特定线程线程的Looper
new Handler(Looper对象)
复制代码
总结
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
曂沅仴駦
论坛元老
这个人很懒什么都没写!
楼主热帖
ICA:1靶场
gitee使用教程,创建项目仓库并上传代 ...
教你如何解决T+0的问题
国内IT硬件如何铸就新辉煌? ...
架构设计基础设施保障IaaS之计算篇 ...
快速入门python看过的一些资料 ...
JS中的Set与Map
Excel文件校验
超融合技术在银行业的应用及实施中的关 ...
如何筑造数据安全边界
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
程序人生
移动端开发
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表