Android 事件机制

目录

基于监听的事件处理:

基于回调的事件处理:

消息传递:


Android 提供2种方式的事件处理:

基于回调的事件处理和基于监听的事件处理

基于监听的事件处理:

模型:委派式

事件源(Event Source)

事件(Event)

事件监听器(Event Listener)

步骤:

1.获取事件源,也就是被监听的组件

2.实现事件监听器类,实现XxxListener 接口

3.调用事件源的setXxxListener方法将事件监听器注册给事件源

事件:传递的事件信息比较复杂时,需要将事件对象进行封装

事件监听器:实现特定接口的实例

事件监听器的几种形式:

内部类形式

外部类形式

Activity本身作为事件监听器

Lambda表达式或匿名内部类(*最常用)

直接绑定到标签

基于回调的事件处理:

事件源和事件统一,事件源直接处理对应的事件

基于回调的事件传播:根据boolean类型的返回值进行判断,返回true,事件已完全处理,不会传播,返回false,事件未完全处理,继续传播

优先级:组件绑定的事件监听器——>组件的回调方法——>组件所在的Activity

回调:

1.定义回调函数(实现回调函数实例)

2.登记回调函数(作为条件参数)

3.触发了回调关联的事件(回调函数中的方法)

响应系统设置的事件:

Configuration类:用于描述手机上的配置信息

onConfigurationChanged方法:响应系统设置更改

消息传递:

Android 的UI操作不是线程安全的,为了解决这个问题,android规定:只允许UI线程修改Activity里的UI组件,其他线程想要修改UI组件,需要借助Handler 的消息传递机制来实现

Handler:

Handler的作用:

1.在新启动的线程中发送消息

2.在主线程中获取、处理消息

Handler一起工作的组件:

Message:Handler 接受和处理的消息对象

Looper:每个线程只能有一个Looper,其loop方法负责读取MessageQueue中的消息

MessageQueue:消息队列,采用先进先出的方式来管理Message

Message 机制总结:

1.Message 承载内容
2.MessageQueue 存放 Message
3.Looper 派发 Message
4.Handler 处理 Message

AsyncTask 异步任务

参考:

https://www.jianshu.com/p/f0b23ee5a922

你可能感兴趣的:(android)