继承自cocos2dxActivity的activity点击回退键不生效问题解决

来源:互联网 发布:指南针炒股软件官网 编辑:程序博客网 时间:2024/06/04 22:22

   当我们的activity继承cocos2dxActivity后,点击回退键就不生效了(也不是完全不生效,将软键盘弹出再隐藏,回退键就生效了)。这时候我们有需要使用回退键的话,可以通过重写dispatchKeyEvent方法来达到目的。

以下是本人在项目中使用到的,当用户第一次点击回退键时,弹toast告诉用户“再次点击将退出程序”,当用户第二次点击且与第一次点击的时间间隔在2秒以内时则退出程序。

private long startCountTime = 0;
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN
) {       
boolean isKeyBoardShowing = Util.judgeSoftWareShowState(AppActivity.this);
long separateTime = System.currentTimeMillis() - startCountTime;
Logger.print(TAG, "event.getKeyCode() == KeyEvent.KEYCODE_BACK");
Logger.print(TAG, "separateTime "+separateTime/1000);
if( startCountTime == 0 || separateTime/1000 > 2){
startCountTime = System.currentTimeMillis();
Toast toast = Toast.makeText(this, "再次点击将退出程序", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}else if(separateTime/1000 >=0 && separateTime/1000 <= 2){
AppActivity.this.finish();
}


}


return super.dispatchKeyEvent(event);
}


0 0