2010-10-21 10 views
5

Quiero bloquear el hardware botón de retroceso en androide, con el fin de impedir que se remonta a otra actividad .. Gracias de antemano ...Bloquear el botón trasero en Android

+0

No haga esto .. – Falmarri

+0

No hay motivo para votar hecho, ya que la pregunta es legítima: puede evitar el botón Atrás para los cuadros de diálogo, por lo menos cuando usa una actividad en un estilo de diálogo, puede ser lógico bloquear el botón Atrás. – sven

Respuesta

17

Aquí es código que le permite manejar la llave en una actividad correctamente en todas las versiones de la plataforma:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ( Integer.valueOf(android.os.Build.VERSION.SDK) < 7 //Instead use android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR 
      && keyCode == KeyEvent.KEYCODE_BACK 
      && event.getRepeatCount() == 0) { 
     // Take care of calling this method on earlier versions of 
     // the platform where it doesn't exist. 
     onBackPressed(); 
    } 

    return super.onKeyDown(keyCode, event); 
} 

@Override 
public void onBackPressed() { 
    // This will be called either automatically for you on 2.0 
    // or later, or by the code above on earlier versions of the 
    // platform. 
    return; 
} 

fuentes: http: //android-developers.blogspot.com/2009/12 /back-and-other-hard-keys-three-stories.html

+0

Es excelente saberlo, especialmente debido a la incómoda backgack Frgagment de Android que no le permite borrar los elementos más antiguos y mantener los más nuevos. –

+0

@ 100rabh, utilicé el código anterior que funcionó perfectamente dentro de mi GameView. Sin embargo, dentro de View tengo ventanas emergentes de diálogo. ¿Cómo puedo implementar la desactivación anterior del botón Atrás para las ventanas emergentes? Gracias –

+0

@LandLPartners Para los cuadros de diálogo debe manejar claves usando [DialogInterface.OnKeyListener] (http://developer.android.com/reference/android/content/DialogInterface.OnKeyListener.html). ¡Simplemente tome la tecla de retroceso como se indicó anteriormente y listo! – 100rabh

4

Si la 'otra actividad' es suya, puede configurarlo para que no aparezca en la lista de historial.

De lo contrario, recuerde que el teléfono le pertenece al usuario y no a usted, y deje de intentar decirles lo que pueden y no pueden hacer con SU dispositivo.

+0

+1 Deja de jugar con el comportamiento esperado. – benvd

+2

Creo que en algunos casos esto es aceptable. Acabo de encontrar uno en el que tengo un conjunto de preferencias que se guardan automáticamente cuando el usuario regresa, sin embargo, en el caso de que olvidaran completar un campo, los alerté para que confirmen si desean o no volver a perder los cambios. .. – Redth