1、Android事件处理
1)基于监听的事件处理
2)基于回调的事件处理
2、基与监听的事件处理
和swing处理的方式几乎相同
- EventSource(事件源)
- Event(事件)
- EventListener(事件监听器)
1)代码实现
button.setOnClickListener(new OnClickListener(){})
2)绑定到标签
通过类似onClick等属性设置,对应的方法xxx(View source),source为事件源
在界面布局对应的Activity中定义一个方法,属性值为那个方法的名字。
3、基于回调的事件处理
代码角度看更简单。激发事件后,由组件自己的特定方法处理该事件。
继承GUI组件类,重写该类的事件处理方法,在用该GUI组件定义界面。
1)基于回调的事件传播
回调方法返回true表示完全处理该事件,不会传播,反之没完全处理事件,会传播出去,那么会触发该Activity的回调方法。只要事件能传播,就能到activity。
2)对比
监听和回调两种,监听可维护性好,同时设置的情况,回调会优先触发。基于回调的实现可以更好的提高程序的内聚性。
4、响应的系统设置的事件
1)Configuration类
描述手机上的配置信息,包括用户特定的配置项,也包括系统的动态设备配置。
Activity中获取Configuration对象:getResources().getConfiguration();
2)重写Activity的onConfigurationChanged响应系统设置更改
基于回调的处理,系统设置发生更改时,自动触发。
5、Handler消息传递机制
解决Android的多线程问题。不允许Activity启动新线程访问该Activity里的界面组件。
1)Handler类
在新启动的线程发送消息,在主线程中获取消息。
- 主线程处理消息,通过重写Handler类中的方法。
- 当新启动的线程发送消息时,Handler类中处理消息的方法自动被调用。