Android DroidGap禁用后退按钮

Android DroidGap禁用后退按钮,android,cordova,back-button,Android,Cordova,Back Button,任何人都建议,在使用PhoneGap时,如何禁用后退按钮按下事件 我需要在我的活动中(DroidGapcode)做一些事情来控制后退按钮事件 甚至,以下代码在我的活动中运行良好,但与DroidGap一起使用时不起作用 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { //preventing default

任何人都建议,在使用
PhoneGap
时,如何禁用后退按钮按下事件

我需要在我的
活动中(
DroidGap
code)做一些事情来控制后退按钮事件

甚至,以下代码在我的
活动
中运行良好,但与
DroidGap
一起使用时不起作用

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_BACK) {
         //preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR
         return true;
     }
     return super.onKeyDown(keyCode, event);    
}

在我的例子中,我使用Javascript+jquery,如下所示:

$(document).on('backbutton',
     function(e){

         e.preventDefault();

         // do whatever you like here.

});

appView
上调用
setOnKeyListener
帮助了我

我只需要对上面的代码片段做一个小改动,如下所示:

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            return true;
        }
        return onKeyDown(keyCode, event); 
    } 
});
已编辑

当按下事件键时,实际上会发生两个动作-
向上动作
&
向下动作

因此,应该使用以下命令来获取密钥事件

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
            // Do Here whatever you want 
            return true;
        }
        return onKeyDown(keyCode, event); 
    } 
});

略好于纳伦德拉的版本。它可以正确处理除“后退”按钮外的按键通话。例如,将下面的代码放在onCreate覆盖中

appView.setOnKeyListener(new View.OnKeyListener() { 

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_UP) {
                if(keyCode == KeyEvent.KEYCODE_BACK) {
                    // Do Stuff Here
                    return true;
                }
                return onKeyUp(keyCode, event);
            }
            return onKeyDown(keyCode, event); 
        } 
   });

@PnestecDev:您是否试图在单击“后退”按钮时执行某些操作?是的,我正在尝试在单击“后退”按钮时导航页面。@NarendradroidForm我根据您的回答实现了。。。单击“设备后退”按钮将触发该事件。。。当我单击设备后退按钮时,不应发生任何事情。。。。你能帮助我如何实现吗?只需注释/删除你在单击“后退”按钮时执行的事件。另外,请从条件中删除--event.getAction()==KeyEvent.ACTION\u。对我不起作用。Android上的jQ 1.8.3+jQM 1.3.2(摩托罗拉剃须刀)
// ************ stop the back button  *****************

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

        return true;
    }
    return super.onKeyDown(keyCode, event);
}
if (keyCode == KeyEvent.KEYCODE_BACK) {

    return true;
}