Android消息处理
16lz
2021-01-26
Android事件处理的两种模式
基于监听的事件处理
事件源Event Source, 事件Event, 事件监听器Event Listener,
事件源将事件委托给事件监听器,由事件监听器对事件进行响应处理。
SetXXXListener()
基于回调的事件处理
- 都有一个boolean的返回值,决定事件是否继续向下传播
- extends button/Activity/View
实现响应组件的方法,例如:onKeyDown(), onTouchEvent()
在布局文件中绘制相应组件
系统设置类Configuration,方法onConfigurationChanged()是基于回调的事件处理方法,用于监听系统设置的变化;
Handler消息传递机制
Handler主要功能有两个:在新启动的线程中发送消息;在主线程中获取、处理消息。
Looper: 每个线程可以产生一个Looper,用它来管理Message Queue,从MessageQueue中取出消息
Handler: 构造Handler对象来与Looper沟通,以便push 新消息到 Message Queue里,或者接收Looper从Message Queue 里所送来的消息。
Message Queue: 管理Message
Handler执行过程:
使用Handler的步骤:
- 创建Looper对象:Looper.prepare();
- 创建Handler子类实例,重写handleMessage()方法;
mHandler = new Handler(){
handleMessage();
}
3. 调用Looper.loop()方法启动loop.
4. 在UI线程中实例化新的Looper线程,调用thread.run()启动线程;
UI线程向新线程中的Handler发送消息 handler.sendMessage()
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- Android(安卓)模拟系统事件(一)
- Android(安卓)onTouch事件传递机制
- 2019寒冬之下,作为一个android码农,是如何进入腾讯的?
- android View中如何判断长按事件
- android中RadioGroup、RadioButton、Spinner、EditText用法详解(
- Android(安卓)源码分析鼠标事件传递
- AIDL/IPC Android(安卓)AIDL/IPC 进程通信机制——超详细讲解及
- android 事件分发 拦截 (onInterceptTouchEvent dispatchTouchEv