cocos2dx + android点击返回键两下退出游戏实现

1,修改org/cocos2dx/lib/Cocos2dxGLSurfaceView.java下面

@Override
public boolean onKeyDown(final int pKeyCode,final KeyEvent pKeyEvent) {
    switch (pKeyCode) {
        case KeyEvent.KEYCODE_BACK:
             
        case KeyEvent.KEYCODE_MENU:
            this.queueEvent(new Runnable() {
             @Override
            public void run() {
                Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleKeyDown(pKeyCode);
            }
        });
        return true;
        default:
            return super.onKeyDown(pKeyCode,pKeyEvent);
    }
}
为:
@Override
public boolean onKeyDown(final int pKeyCode,final KeyEvent pKeyEvent) {
    switch (pKeyCode) {
        case KeyEvent.KEYCODE_BACK:
            return false;
        case KeyEvent.KEYCODE_MENU:
            this.queueEvent(new Runnable() {
             @Override
            public void run() {
                Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleKeyDown(pKeyCode);
            }
        });
        return true;
        default:
            return super.onKeyDown(pKeyCode,pKeyEvent);
    }
}
按键KeyEvent.KEYCODE_BACK被监听了,只要在这里不作处理即可(return false)

2,添加代码

//
private long exitTime = 0;

@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
	   Log.e("<<<onKeyDown","<<<onKeyDown");
	   if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
		   if(System.currentTimeMillis() - exitTime > 2000){
			   Toast.makeText(getApplicationContext(),"再按一次退出程序",Toast.LENGTH_SHORT).show();
			   exitTime = System.currentTimeMillis();
		   }else{
			   finish();
			   System.exit(0);
		   }
		   return true;
	   }
	   return super.onKeyDown(keyCode,event);
}

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...