Android事件处理的两种模式

基于监听的事件处理

事件源Event Source, 事件Event, 事件监听器Event Listener,

事件源将事件委托给事件监听器,由事件监听器对事件进行响应处理。

SetXXXListener()

基于回调的事件处理

  1. 都有一个boolean的返回值,决定事件是否继续向下传播
  2. 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的步骤:

  1. 创建Looper对象:Looper.prepare();
  2. 创建Handler子类实例,重写handleMessage()方法;

mHandler = new Handler(){

handleMessage();

}

3. 调用Looper.loop()方法启动loop.

4. 在UI线程中实例化新的Looper线程,调用thread.run()启动线程;

UI线程向新线程中的Handler发送消息 handler.sendMessage()

更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. Android(安卓)模拟系统事件(一)
  3. Android(安卓)onTouch事件传递机制
  4. 2019寒冬之下,作为一个android码农,是如何进入腾讯的?
  5. android View中如何判断长按事件
  6. android中RadioGroup、RadioButton、Spinner、EditText用法详解(
  7. Android(安卓)源码分析鼠标事件传递
  8. AIDL/IPC Android(安卓)AIDL/IPC 进程通信机制——超详细讲解及
  9. android 事件分发 拦截 (onInterceptTouchEvent dispatchTouchEv

随机推荐

  1. 圆角ImageView的几种实现方法
  2. Android(安卓)RecyclerView设置分割线
  3. android app develop utils
  4. Android(安卓)调用系统分享,分享到Faceboo
  5. android Junit demo
  6. Android:使用webview上传文件(支持相册和
  7. Android适配器总结
  8. main thread in android application
  9. canvas save() restoreToCount() Test
  10. Android(安卓)内部存储外部存储