No se puede capturar el evento del botón Volver de Android

Estoy tratando de capturar el evento de botón de nuevo para Android. Sé que hay mucho sobre esto ya en los formularios, sin embargo, mi código no funciona como los ejemplos dados. Aquí está mi fragmento de código para capturar el evento:

@Override public boolean onKeyDown(int keyCode, KeyEvent event){ if(keyCode == KeyEvent.KEYCODE_BACK){ Log.d(TAG, "back key captured"); return true; } return super.onKeyDown(keyCode, event); } 

También he intentado esto:

 @Override public void onBackPressed(){ Log.d(TAG, "in onBackPressed"); finish(); } 

La salida de LogCat que cualquiera de los eventos se disparó no aparece. Alguien sabe una posible razón para esto?

Gracias.

6 Solutions collect form web for “No se puede capturar el evento del botón Volver de Android”

Otro método es anular el método public void onBackPressed() . Es más sencillo y más fácil de hacer.

Para recibir un evento de teclado, una Vista debe tener el foco. Para forzar este uso:

 view.setFocusableInTouchMode(True); view.requestFocus(); 

¿Está el teclado suave mostrando? Esta vista captura la tecla de retroceso primero para descartarla antes de que su propio código pueda manejarla.

Esto funciona para mí

 private long lastBackPressTime = 0; @Override public void onBackPressed() { if (this.lastBackPressTime < System.currentTimeMillis() - 4000) { Toast.makeText(this, R.string.backButtonWarning, 4000).show(); this.lastBackPressTime = System.currentTimeMillis(); } else { super.onBackPressed(); } } 

Últimamente ha estado experimentando una enorme cantidad de problemas debido al complemento de ADT, que generan el archivo de recursos apropiado (R). Así que comprueba que has limpiado tu proyecto

Mi situación puede ser inusual, pero tuve el mismo comportamiento, así que pensé compartirlo con la clase! La razón terminó siendo que dentro de mi evento onResume () para la Actividad, estaba iniciando otra actividad. Esa actividad se estaba terminando antes de que alguna vez mostrara alguna interfaz de usuario, pero significaba que el "onResume" para mi actividad principal se llamaba continuamente cada vez que terminaba la subactividad, y todos los eventos del botón de retorno parecían desaparecer en la subactividad.

Aquí es cómo implementé el manejo del evento presionado por la tecla de retroceso.

 /** * onKeyDown method * * Executes code depending on what keyCode is pressed. * * @param int keyCode * @param KeyEvent * event KeyEvent object * * @return true if the code completes execution, false otherwise * */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: Log.d(TAG, "back key captured"); this.onBackPressed(); //You could also use this.moveTaskToBack(true) to return to the Home screen return true; default: return super.onKeyDown(keyCode, event); } }// end onKeyDown 
  • Para Emacs, viaje largo para usar la tecla CTRL en Android
  • Teclas especiales KeyEvent (como silenciar)
  • Leer eventos de teclado en Android WebView
  • EditText no recibe eventos clave TAB - stock soft vk
  • Android onkey - dispatchKeyEvent sin disparar
  • Eventos clave en TabActivities?
  • Enviar una consulta cuando haga clic en el botón de búsqueda en el teclado
  • Simulación de combinación de pulsadores de teclas del terminal ADB
  • Enviar una combinación de teclas (clave meta y clave) a través de la API de Android
  • Android: ¿Hay una manera de simular D-Pad Events (API 10)?
  • Escuchar Webview Key Events desde el teclado del software en la actividad de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.