Deshabilitar el botón Atrás en Android

¿Cómo deshabilitar el botón Atrás en Android al cerrar la sesión de la aplicación?

Reemplace el método onBackPressed y no haga nada si tuvo la intención de manejar el botón Atrás en el dispositivo.

@Override public void onBackPressed() { if (!shouldAllowBack()) { doSomething(); } else { super.onBackPressed(); } } 

Si busca el nivel api de Android hasta 1.6.

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

Y si busca un nivel de api más alto 2.0 y superior, esto funcionará muy bien

 @Override public void onBackPressed() { // Do Here what ever you want do on back press; } 

escribe este código en tu Actividad para evitar que se presione el botón Atrás

Puedes hacerlo de esta manera simple No llames a super.onBackPressed ()

Nota: – No hagas esto a menos y hasta que tengas una buena razón para hacerlo.

 @Override public void onBackPressed() { super.onBackPressed(); // dont call **super**, if u want disable back button in current screen. } 

Simplemente anule el método onBackPressed () .

 @Override public void onBackPressed() { } 

Lo estoy usando………….

  @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK) Toast.makeText(getApplicationContext(), "back press", Toast.LENGTH_LONG).show(); return false; // Disable back button.............. } 

Si quieres asegurarte de que tu aplicación cliente de Android esté desconectada de algún servidor antes de que tu actividad sea eliminada -> cierra la sesión con un servicio en su propio hilo (eso es lo que se supone que debes hacer de todos modos).

Desactivar el botón Atrás no resolverá nada por ti. Igual tendrá el mismo problema cuando el usuario reciba una llamada telefónica, por ejemplo. Cuando se recibe una llamada telefónica, su actividad tiene casi la misma probabilidad de ser asesinado antes de recibir una respuesta confiable de la red.

Es por eso que debe dejar que un servicio espere en su propio hilo la respuesta de la red, y luego intentarlo de nuevo si no tiene éxito. El servicio de Android no solo es mucho menos probable que sea asesinado antes de recibir una respuesta, sino que si realmente muere antes de terminar el trabajo, AlarmManager siempre lo puede revivir para volver a intentarlo.

si está utilizando FragmentActivity . entonces haz como este

primero llama Esto dentro de tu Fragment .

 public void callParentMethod(){ getActivity().onBackPressed(); } 

y luego, llame onBackPressed método onBackPressed en el lado de su clase primaria FragmentActivity .

 @Override public void onBackPressed() { //super.onBackPressed(); //create a dialog to ask yes no question whether or not the user wants to exit ... } 

Si desea deshabilitar su aplicación al cerrar la sesión, puede abrir un cuadro de diálogo no cancelable.

Solo necesita anular el método para el botón Atrás. Puede dejar el método vacío si lo desea para que no ocurra nada cuando presione el botón Atrás. Por favor, eche un vistazo al código a continuación:

 @Override public void onBackPressed() { // Your Code Here. Leave empty if you want nothing to happen on back press. } 

Aparte de estos dos métodos de la respuesta anterior.

onBackPressed () (Nivel de API 5, Android 2.0)

onKeyDown () (Nivel de API 1, Android 1.0)

También puede sobrescribir el dispatchKeyEvent() (API Level 1, Android 1.0) de esta manera,

dispatchKeyEvent() (Nivel de API 1, Android 1.0)

 @Override public boolean dispatchKeyEvent(KeyEvent event) { // TODO Auto-generated method stub if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { return true; } return super.dispatchKeyEvent(event); } 

Para mí, simplemente anular onBackPressed() no funcionaba, pero señalar explícitamente qué actividad debería comenzar a funcionar bien:

 @Override public void onBackPressed(){ Intent intent = new Intent(this, ActivityYouWanToGoBack.class); startActivity(intent); } 

Simplemente usando este código: Si desea deshabilitar la retrocompresión, no usa super.OnBackPressed ();

 @Override public void onBackPressed() { } 

Puede anular el método onBackPressed() en su actividad y eliminar la llamada a la súper clase.

 @Override public void onBackPressed() { //remove call to the super class //super.onBackPressed(); } 

Simplemente anule el método onBackPressed () y no es necesario llamar a la superclase del método onBackPressed u otros.

 @Override public void onBackPressed() { } 

O pase su actividad actual al método onBackPressed ().

 @Override public void onBackPressed() { startActivity(new Intent(this, myActivity.class)); finish(); } 

Reemplace su nombre de actividad requerida a myActivity.

si está utilizando un fragmento, primero llame al método callParentMethod ()

 public void callParentMethod(){ context.onBackPressed(); // instead of context use getActivity or something related } 

luego llama al método vacío

 @Override public void onBackPressed() { }