Cyh的博客

Email:kissyan4916@163.com
posts - 26, comments - 19, trackbacks - 0, articles - 220

Android游戏开发之旅(十五) 按键中断处理

Posted on 2010-12-03 10:28 啥都写点 阅读(803) 评论(0)  编辑  收藏 所属分类: Android

有关Android平台上游戏开发中我们需要处理一些特别的按键事件,对于突发的事情我们需要特别的考虑,比如突然来电话了和游戏中按下一些特殊的键,比如拍照键

view plaincopy to clipboardprint?
@Override 
    public boolean dispatchKeyEvent(KeyEvent event)  
    {  
           switch (event.getKeyCode())  
           {  
             case KeyEvent.KEYCODE_VOLUME_UP:   //音量键+  
             case KeyEvent.KEYCODE_VOLUME_DOWN:   //音量键-  
             case KeyEvent.KEYCODE_CAMERA:  //拍照键  
             case KeyEvent.KEYCODE_FOCUS:   //拍照键半按的对焦状态  
          //   event.getAction() == KeyEvent.ACTION_UP   //Android123提示如果按键按下后弹起时触发  
                 
            }  
                return true; //这些标记为处理过,则不在往内部传递  
         default:  
                break;  
        }  
        return super.dispatchKeyEvent(event);  
    } 
@Override
    public boolean dispatchKeyEvent(KeyEvent event)
    {
           switch (event.getKeyCode())
           {
             case KeyEvent.KEYCODE_VOLUME_UP:   //音量键+
             case KeyEvent.KEYCODE_VOLUME_DOWN:   //音量键-
             case KeyEvent.KEYCODE_CAMERA:  //拍照键
             case KeyEvent.KEYCODE_FOCUS:   //拍照键半按的对焦状态
          //   event.getAction() == KeyEvent.ACTION_UP   //Android123提示如果按键按下后弹起时触发
              
            }
                return true; //这些标记为处理过,则不在往内部传递
         default:
                break;
        }
        return super.dispatchKeyEvent(event);
    }

对于游戏突然来电话我们一般采取通过PhoneStateListener类提供的public void onCallStateChanged (int state, String incomingNumber) 回调方法可以获取电话的状态,比如常规空闲时CALL_STATE_IDLE、来电时
CALL_STATE_RINGING和 CALL_STATE_OFFHOOK 摘机通话中,有关处理的细节网友可以查看Android Git项目中的Music,在Android开源项目中系统自带的音乐播放器可以很好的处理,比如在通话结束后恢复音乐播放,而我们游戏需要做的就是记住当前的游戏状态尽量数据持久化处理,不能因为长时间的通话,游戏的Activity被清理了,这里我们一般通过onSaveInstanceState来保存当前窗口的一些记录,通过Intent标记来让系统管理好我们游戏的生命周期。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/JavaTiger427/archive/2010/11/25/6034653.aspx



                                                                                                       --    学海无涯