安卓基础之《(29)—消息机制与异步任务》

一、线程概述

1、在android中,只有在ui Thread中才能直接更新界面

ui Thread又叫main Thread、主线程

2、在android中,长时间的工作(联网)都需要在workerThread中执行

workerThread又叫分线程、子线程

3、在分线程获得服务器数据后,需要立即到主线程去更新界面显示数据(切换到主线程)

4、如何实现线程间通信呢,用消息机制

二、消息机制

1、Message

(1)可理解为线程间通讯的数据单元,可通过Message携带需要的数据

(2)创建对象

Message.obtain(what)

(3)封装数据

2、Handler

(1)Handler是Message的处理器,同时也负责消息的发送和移除的工作

(2)发送即时消息:sendMessage(Message msg)

(3)发送延时消息:sendMessageDelayed(Message msg, long time)

这里延迟是延迟处理,处理时间=当前时间+延迟时间

(4)处理消息(回调方法):handleMessage(Message msg)

(5)移除还未处理的消息:removeMessages(int what)

3、MessageQueue

(1)消息队列,用来存放通过Handler发送的消息

(2)它是一个按照Message的when排序的优先级队列

4、Looper

(1)钩子,循环器

(2)负责循环取出MessageQueue里面的当前需要处理的Message

(3)交给对应的Handler进行处理

(4)处理完后,将Message缓存到消息池中(线程池),以备复用

5、原理图

相关推荐
Kapaseker24 分钟前
Kotlin 相等的奥义
android·kotlin
Lyyaoo.25 分钟前
【MySQL】锁机制
android·数据库·mysql
DS随心转插件36 分钟前
DeepSeek 代码手机端导出与 AI 辅助方案实测
android·人工智能·chatgpt·智能手机·deepseek·ai导出鸭
JohnnyDeng941 小时前
【Android】Flow vs LiveData:选型指南与迁移实践
android·kotlin·livedata·flow
plainGeekDev1 小时前
线程安全集合 → 协程安全替代
android·java·kotlin
zhangphil1 小时前
Kotlin管道Channel构造函数参数capacity值RENDEZVOUS与UNLIMITED
android·kotlin
plainGeekDev1 小时前
Timer → Coroutines
android·java·kotlin
Coffeeee1 小时前
Android17应用内存限制--App:我人不舒服,系统:那你走吧
android·google·kotlin
问心无愧05132 小时前
ctf show web入门101
android·前端·笔记
一池秋_2 小时前
chroot-debian一键部署
android·容器·debian