попробуйте с этим без диалога
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
Log.e("call","on key down");
return true;
}
}
return super.onKeyDown(keyCode, event);
}
, если вы используете диалог, то в диалоге используйте это
DialogInterface.OnKeyListener keylistener = new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent KEvent) {
int keyaction = KEvent.getAction();
if(keyaction == KeyEvent.ACTION_DOWN)
{
Toast.makeText(getApplicationContext(), "? " + keyCode, Toast.LENGTH_LONG).show();
}
return true;
}
};
final AlertDialog dialogs = alert.create();
dialogs.show();
dialogs.setOnKeyListener(keylistener);