Posted on 2010-12-03 10:28
啥都寫點 閱讀(815)
評論(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
--
學海無涯