Cyh的博客

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

          有關(guān)Android平臺上游戲開發(fā)中我們需要處理一些特別的按鍵事件,對于突發(fā)的事情我們需要特別的考慮,比如突然來電話了和游戲中按下一些特殊的鍵,比如拍照鍵

          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:   //拍照鍵半按的對焦狀態(tài)  
                    //   event.getAction() == KeyEvent.ACTION_UP   //Android123提示如果按鍵按下后彈起時觸發(fā)  
                           
                      }  
                          return true; //這些標記為處理過,則不在往內(nèi)部傳遞  
                   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:   //拍照鍵半按的對焦狀態(tài)
                    //   event.getAction() == KeyEvent.ACTION_UP   //Android123提示如果按鍵按下后彈起時觸發(fā)
                        
                      }
                          return true; //這些標記為處理過,則不在往內(nèi)部傳遞
                   default:
                          break;
                  }
                  return super.dispatchKeyEvent(event);
              }

          對于游戲突然來電話我們一般采取通過PhoneStateListener類提供的public void onCallStateChanged (int state, String incomingNumber) 回調(diào)方法可以獲取電話的狀態(tài),比如常規(guī)空閑時CALL_STATE_IDLE、來電時
          CALL_STATE_RINGING和 CALL_STATE_OFFHOOK 摘機通話中,有關(guān)處理的細節(jié)網(wǎng)友可以查看Android Git項目中的Music,在Android開源項目中系統(tǒng)自帶的音樂播放器可以很好的處理,比如在通話結(jié)束后恢復音樂播放,而我們游戲需要做的就是記住當前的游戲狀態(tài)盡量數(shù)據(jù)持久化處理,不能因為長時間的通話,游戲的Activity被清理了,這里我們一般通過onSaveInstanceState來保存當前窗口的一些記錄,通過Intent標記來讓系統(tǒng)管理好我們游戲的生命周期。

           

          本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/JavaTiger427/archive/2010/11/25/6034653.aspx



                                                                                                                 --    學海無涯
                  

          主站蜘蛛池模板: 崇明县| 锡林郭勒盟| 栾川县| 甘德县| 泽普县| 蒲江县| 洛阳市| 鄂伦春自治旗| 磐石市| 施秉县| 视频| 东乌珠穆沁旗| 宁远县| 随州市| 通州区| 土默特右旗| 孝昌县| 望都县| 万荣县| 方山县| 麻阳| 正宁县| 剑阁县| 惠来县| 老河口市| 辉县市| 安庆市| 天津市| 慈利县| 昌邑市| 嘉义县| 平武县| 永康市| 桓仁| 洛宁县| 汉阴县| 静安区| 兴文县| 库车县| 丹东市| 星子县|