Quick Android下back键事件接不到的问题

如题,代码如下.

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode == KeyEvent.KEYCODE_BACK){
//xxxxx
return true;
        }
        return super.onKeyDown(keyCode, event);
    }


```



查了一下libcocos2dx工程,发现在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);
        }
    }


```


直接在上层阻止了事件的接收,然后直接传给lua,所以java层收不到。可是怎么改呢?
GLSurfaceView跟Cocod2dxActivity有什么关系呢?

if device.platform == “android” then
– avoid unmeant back
self:performWithDelay(function()
– keypad layer, for android
local layer = display.newLayer()
layer:addKeypadEventListener(
function(event)

                if event == "back" then 
                    backCount = backCount+1
                    if backCount == 2 then
                        --暂停游戏
                       display.pause()
                       --弹出是否退出的dialog
                       local  text = "您是否退出游戏"
                        exitDialog.new(text,function ()
                            -- body
                            app.exit()
                        end,function (  )
                            -- body
                            display.resume()
                        end):addTo(display.getRunningScene(),1003)

                       backCount = 0 
                    end  
                end
        end)
        self:addChild(layer)


        layer:setKeypadEnabled(true)
    end, 0.5)
end
 if device.platform ~= "android" then return end

     self:performWithDelay(function()
     -- keypad layer, for android
     local layer = display.newLayer()
     layer:addNodeEventListener(cc.KEYPAD_EVENT, function(event)
         if event.key == "back" then  --do something end
         if event.key == "menu" then --do something  end
     end)
     self:addChild(layer)

     layer:setKeypadEnabled(true)
 end, 0.5)

已经发了 N次了
再发一次