安卓机制Handler
Handler是什么?
Handler是更新UI界面的机制,也是消息处理机制,我们可以发送消息,也可以处理消息
为什么要有Handler呢?
主线程不能做耗时操作,不然会出现ANR的现象,子线程不能更新Ul界面
Android为什么要设置Handler来更新UI?
假如在同一个Activity界面中,有多个线程去更新UI,并且都没有加锁机制,立马会出现界面混乱的现象,如果会UI的更新操作加了锁进行处理,这样就会产生性能下降的问题,对于这样的问题,Android提供了一套更新UI的机制,也就是Handler机制,我们只用遵循这样的规定即可
简单的概述一下:
Handler发送一个message,进入messgeQueue,根据先进先出,取出message,然后处理message,这里,发送的是Handler,处理的也是Handler,只需要用回调函数就能实现
如何实现不停的从消息队列里取出消息呢,这时就用上了Lopper,Lopper里面有一个死循环(类似摩天轮),不断的从消息队列中抽取消息,每个Thread都有一个Lopper,也只能有一个Lopper,默认情况下Lopper是不启动的,因为Activity默认已经帮你启动了,用于UI刷新的相关工作,
如果我们要在自己写的Thead中,启动lopper,参照下面的代码,执行prepared和lopper
public class LooperThread extends Thread{
public void run(){
//初始化lopper
Lopper.prepare
//其他的一些处理
//开始循环处理消息队列
Lopper.loop();
}
}
一个Thread对应一个Lopper
一个Lopper可以有多个Handler
【安卓机制Handler】一个Lopper对应一个messageQueue
推荐阅读
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- 打死都不会用安卓手机(试用两天之后(嗯,真香!))
- 笔记|如何在Windows11安装安卓子系统()
- android|android today上下卡片,【精品文档】关于计算机专业大学生安卓系统有关的外文文献翻译成品(基于Android(安卓)的考勤管理系统(中英文双语对照)
- 轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
- Java中的反射
- k8s|k8s(六)(配置管理与集群安全机制)
- 安卓软键盘
- 垃圾回收机制(第十二天)