Кнопка отключения Android DroidGap

Пожалуйста, предложите, как я могу отключить событие нажатия кнопки "Назад" при работе с PhoneGap?

Мне нужно что-то сделать в коде Activity, (DroidGap) для управления событием кнопки "Назад".

Даже, следующий код хорошо работает в моем Activity, но не работает при использовании с 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);    
}

Ответ 1

Вызов setOnKeyListener on appView помог мне.

Мне просто пришлось внести незначительные изменения в мой выше фрагмент кода, который выглядит следующим образом:

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

EDITED

На самом деле происходит два действия, в то время как событие нажатия клавиш - Action Up и Action Down

Итак, для получения ключевого события необходимо использовать следующее.

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); 
    } 
});

Ответ 2

Чуть лучше, чем версия Нарендры. Он может обрабатывать вызовы клавиш для нажатия клавиш, отличных от кнопки возврата. Поместите код ниже внутри onCreate override, например.

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); 
        } 
   });

Ответ 3

В моем случае я использую Javascript + jquery так:

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

         e.preventDefault();

         // do whatever you like here.

});

Ответ 4

// ************ stop the back button  *****************

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

        return true;
    }
    return super.onKeyDown(keyCode, event);
}

Ответ 5

if (keyCode == KeyEvent.KEYCODE_BACK) {

    return true;
}