安卓基础之《(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、原理图

相关推荐
Kapaseker9 分钟前
一文吃透 Kotlin 集合操作符
android·kotlin
三少爷的鞋1 小时前
Main-safe:现代Android 架构真正的分水岭
android
沐怡旸10 小时前
深入解析 Android Performance Analyzer (APA) 底层架构与技术原理
android
李斯维17 小时前
从历史的角度看 Android 软件架构
android·架构·android jetpack
plainGeekDev20 小时前
Activity 间传值 → Navigation 参数
android·java·kotlin
用户416596736935520 小时前
Android WebView 加载 file:// 离线页面调试教程
android·前端
plainGeekDev20 小时前
onActivityResult → ActivityResult API
android·java·kotlin
随遇丿而安1 天前
第10周:Activity 基础功能与生命周期优化
android
alexhilton2 天前
Android车载OS中的Remote Compose
android·kotlin·android jetpack
落魄Android在线炒饭2 天前
Android 自定义HAL开发篇之 HIDL篇——从入门到实战(上)
android