安卓应用的事件处理

 安卓有两套事件处理机制:
     基于监听的事件处理:为组件绑定特定的事件监听器(甚至可以在XML文件中用onClick属性来绑定)
     基于回调的事件处理:重写组件特定的回调方法,或者重写Activity的回调方法
          boolean onKeyDown(int keyCode, KeyEvent event)
          boolean onKeyLongPress(int keyCode, KeyEvent event)
          boolean onKeyShortcut(int keyCode, KeyEvent event)(键盘快捷键)
          boolean onKeyUp(int keyCode, KeyEvent event)
          boolean onTouchEvent(MotionEvent event)
          boolean onTrackballEvent(MotionEvent event)(轨迹球屏)
几乎所有的基于回调的事件处理方法都有一个boolean类型的返回值,用于标识该方法是否能完全处理该事件:
     返回true,表示该处理方法已完全处理该事件,该事件不会传播出去;
     返回false,表示该处理方法未完全处理该事件,该事件会传播出去。
在安卓中,监听的优先级高于回调

Configuration类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设备配置。程序可调用Activity的如下方法来获取系统的Configuration对象:
     Configuration cfg = getResources().getConfiguration();
为了让Activity能监听系统配置的更改事件,需要在AndroidManifest.xml文件中指定android:configChanges属性。

Handler消息传递机制
     安卓的UI操作不是线程安全的,因此安卓制定了一条简单的规则:只允许UI线程修改Activity里的UI组件。当一个程序第一次启动时,安卓会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件。因此,在安卓中,新启动的线程要借助Handler的消息传递机制来实现更改UI组件。
     Handler类的主要作用:
           在新启动的线程中发送消息;在主线程中获取、处理消息。
     Handle类的常用方法:
          void handleMessage(Message msg):处理消息的方法
          final boolean hasMessage(int what):检查消息队列中是否包含what属性为指定值的消息
          final boolean hasMessage(int what,Object object):检查消息队列中是否包含what属性为指定值且object属性为指定对象的消息
          多个重载的Message obtainMessage():获取消息
          sendEmptyMessage(int what):发送空消息
          final boolean sendEmptyMessageDelayed(int what,long delayMillis):指定多少毫秒之后发送空消息
          final boolean sendMessage(Message msg):立即发送消息
          final boolean sendMessageDelayed(Message msg,long delayMillis):指定多少毫秒之后发送消息
          



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值