¿Cómo deshabilitar el botón de retroceso en Android al cerrar la sesión de la aplicación?
¿Cómo deshabilitar el botón de retroceso en Android al cerrar la sesión de la aplicación?
Respuestas:
Anule el método onBackPressed y no haga nada si desea manejar el botón Atrás en el dispositivo.
@Override
public void onBackPressed() {
if (shouldAllowBack()) {
super.onBackPressed();
} else {
doSomething();
}
}
Si busca un nivel de API 2.0 superior y superior, esto funcionará muy bien
@Override
public void onBackPressed() {
// Do Here what ever you want do on back press;
}
Si busca un nivel de API de Android de 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);
}
Escriba el código anterior en su Actividad para evitar presionar el botón Atrás
Puede hacerlo de esta manera simple . No llame a super.onBackPressed ()
@Override
public void onBackPressed() {
// super.onBackPressed();
// Not calling **super**, disables 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 desea asegurarse de que su aplicación de cliente de Android se desconecte de algún servidor antes de que su Actividad sea eliminada -> cierre la sesión con un servicio en su propio hilo (eso es lo que se supone que debe hacer de todos modos).
Deshabilitar el botón Atrás no resolverá nada por ti. Todavía tendrá el mismo problema cuando el usuario reciba una llamada telefónica, por ejemplo. Cuando se recibe una llamada telefónica, su actividad tiene tantas posibilidades 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 nuevamente si no tiene éxito. El servicio de Android no solo es mucho menos probable que lo maten antes de recibir una respuesta, sino que si realmente lo matan antes de terminar el trabajo, AlarmManager siempre puede revivirlo para intentarlo nuevamente.
Simplemente anule el método onBackPressed () y no necesite 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 por 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 llame al método vacío
@Override
public void onBackPressed()
{
}
si está utilizando FragmentActivity
. entonces haz esto
primera llamada Esto dentro de tu Fragment
.
public void callParentMethod(){
getActivity().onBackPressed();
}
y luego llame al onBackPressed
método al lado de su FragmentActivity
clase principal .
@Override
public void onBackPressed() {
//super.onBackPressed();
//create a dialog to ask yes no question whether or not the user wants to exit
...
}
Puede anular el onBackPressed()
método en su actividad y eliminar la llamada a la superclase.
@Override
public void onBackPressed() {
//remove call to the super class
//super.onBackPressed();
}
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 siguiente código:
@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 () (API Nivel 5, Android 2.0)
onKeyDown () (API Nivel 1, Android 1.0)
También puede anular el dispatchKeyEvent()
(Nivel API 1, Android 1.0) de esta manera,
dispatchKeyEvent()
(API Nivel 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);
}
Desactivar el botón trasero en android
@Override
public void onBackPressed() {
return;
}
Prueba esto:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}