Android 事件处理基于Handler 消息处理
16lz
2021-01-23
一、Android的事件处理方法
事件处理:响应用户UI动作,提高应用程序交互性
1、基于监听的事件处理机制
2、基于回调的事件处理机制
3、Handler消息处理
二、Handler消息传递机制详解
1、为什么要使用Handler 消息传递?
1)、Android处于性能考虑,UI线程(主线程)是非线程安全的,为了避免线程安全问题,Android规定“只允许UI线程(主线程)修改程序界面里面的UI组件”
但是,有时候非UI线程业务可能也需要根据需求改变UI界面内容时,这时候就可以利用Handler消息传递,子线程发送Handler Messager给UI线程,通知
UI线程去改变UI组件
2)、Android主线程一般不操作复杂业务逻辑、请求网络等耗时操作,这些操作必须在新的子线程里面,否则可能会引起ANR异常。
2、Handler 消息传递原理
4个主要参与对象:
Handler:消息发送接收处理类。负责从新启动的线程中发送消息,在主线程中获取并处理消息。
Message:消息对象,即Handler接收和处理的消息对象
MessageQuene:消息队列,Message存取于MessageQuene
Looper:每个线程只拥有一个Looper,以先进先出的方式负责从MessageQuene消息队列里面读取Mesaage,交由Handler处理
3、Handler 消息处理应用实例
Handler 处理消息应用步骤
(a)、主线程创建一个Handler,用于消息处理
(b)、子线程发送消息
(c)、主线程接收并处理消息
更多相关文章
- Android学习笔记Android线程模型解析
- [置顶] Android消息异步机制(ThreadLocal、MessageQueue、Looper
- [Android] [ Android启动流程 ] [ 下 ] [ Zygote、SystemServer
- Android Handler 消息机制
- 为什么Android必须在主线程更新UI?
- android 消息机制(2)