有關(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
-- 學海無涯