在Android中有俩种事件处理方式:基于监听的事件处理、基于回调的事件处理
基于监听的事件处理:
主要是为UI组件绑定特定的事件监听器。在事件监听的处理模型中主要有三类对象:1.事件监听器:主要用于监听事件源所发生的的事件,并对不同的事件作出相应的响应。2.事件源:即事件产生的来源,一般情况下是指各种组件。3.事件:在事件中封装了UI组件上发生的特定事件的具体信息,如果监听器要获取这个UI组件上所发生的事件的相关信息,一般情况都是通过这个事件对象进行传递。
三者之间的关系:首先需要将事件监听器注册到事件源当中,然后由外部动作触发事件源上的事件并生成事件对象,再将触发事件监听器的事件作为参数传入到事件处理器当中,最后调用事件处理器作出响应。这就是一个事件的处理流程。
基于回调的事件处理:
主要做法是重写Android组件特定的回调方法或者是重写Activity的回调方法。(回调方法:可以理解为当某一个事件发生时所调用的方法)从代码实现的角度来看,基于回调的事件处理方式更为简单,也就是说要处理哪个事件就重写哪一个回调方法。通常情况下经常重写的方法有:onTouchEvent、onKeyDown、onKeyUp。
区别:
基于回调的事件处理方式主要用来处理一些通用性的事件,代码较为简洁。基于监听的事件处理方式主要用来处理某些特定的事件。
物理按键事件处理:
物理按键就是指手机上真实存在的按键。在Android中为每一个按键都提供了三个方法分别针对不同的状态:1.按下状态:按下某个按键但没有松开的状态(onKeyDown()方法)