android 事件机制

android提供了2中事件处理方式:基于回调的事件处理和基于监听器的事件处理。

基于监听的事件处理

在事件监听处理的处理模型中,主要涉及如下3种类型:

  • Event Source(事件源):事件发生的各个场所,通常是各个组件,例如按钮,窗口,菜单等。
  • Event(事件):事件封装了界面组件上发生的特定事件(通常就是一次用户操作)。
  • Event Listener(事件监听器):监听事件源发生的事件,对各个事件做出响应。

Android的事件处理机制是一种委派式事件处理方式:普通组件(事件源)将整个事件处理委托给特定的对象(事件监听器);当该事件源发生特定的事件时,就通知所委托的事件监听器,由事件监听器来处理这个事件。

基于回调的事件处理

如果说事件监听机制是一种委托的事件处理,那么回调机制正好相反:对于基于回调的时间爱你处理模型来说,事件源与事件监听器是统一的,或者说事件监听器完全消失了。当用户在gui组件上激发某个事件的时候,组件自己特定的方法将会负责处理该事件。

比较

对于基于监听的事件处理模型来说,事件源和事件监听器是分离的,当事件源上发生特定的事件后,该事件交给事件监听器处理;对于基于回调的事件处理模型来说,事件源和事件监听器是统一的,当事件源发生特定的事件后,该事件还是由事件源本身负责处理。