不管是桌面应用还是手机应用程序,面对最多的就是用户,经常需要处理的就是i用户动作——也就是需要为用户动作提供响应,这种为用户动作提供响应的机制就是事件处理。
Android提供了2套强大的事件处理机制:
>基于监听的事件处理。
>基于回调的事件处理。
对于基于监听的事件处理而言,主要做法就是为Android界面组件绑定特定的事件监听器。
Android还允许再界面布局文件中为UI组件的android:onClick属性指定事件监听方法,通过这种指定事件监听方法时,开发者需要在Activity中定义该事件监听方法(该方法必须有一个View类型的形参,该形参代表被单机的UI组件),当用户单机该UI组件时,系统会激发android:onClick属性所指定的方法。
对于Android基于回调的时间啊处理机制而言,主要做法就是重写Android组件特定的回调方法,开发者只需要重写他们即可。
一般而言,基于回调的事件处理可用于处理一些具有通用性的事件,基于回调的事件处理代码会显得比较简洁。但对于某些特定事件,无法使用基于回调的事件处理,只能才用基于监听的事件处理。
对于基于监听的事件处理模型来说,事件源和事件监听器时分离的,当事件源上发生特定事件时,该事件交由事件监听器来负责处理;对于基于回调的事件处理模型来说,事件源和事件监听器是统一的,当事件源发生特定事件时,该事件还是由事件源本身负责处理。
对比Android提供的两种事件处理模型,不难发现基于监听的事件处理模型具有更大的优势。
>基于监听的事件吃力模型分工更明确,事件源,事件监听由两个类分别完成,因此具有更好的可维护性。
>Android的事件处理机制保证基于监听的事件监听器会被雨哦先触发。