Android – onBackPressed () no funciona para mi

Tengo un programa. La primera actividad es una pantalla de bienvenida y la segunda es el inicio de sesión y la tercera es una actividad de menú de vista de lista y, a continuación, otras dos actividades. La pantalla de bienvenida desaparece después de 3 segundos y si la casilla de verificación "Recordar que me está recordando" está marcada, va directamente a la página del menú.
Anular la función onBackPressed en la actividad del menú para que salga del programa directamente después de que el usuario haga clic de nuevo en el menú. Sin embargo, si he pasado por las otras actividades no sale; Va a la actividad anterior en la pila y el cuadro de diálogo no aparece, aunque realmente aparece por un segundo no menos y desaparecer de inmediato.

Aquí está mi función onBackPressed

 public void onBackPressed() { // super.onBackPressed(); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Are you Sure want to close the Application..?") .setCancelable(false) .setTitle("EXIT") .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { finish(); } }); AlertDialog alert = builder.create(); alert.show(); //super.onBackPressed(); } 

Sugiero que utilice ActionBar como lo sugiere WarrenFaith en los comentarios a continuación. Por favor compruebe el acoplamiento abajo para más información

http://developer.android.com/design/patterns/navigation.html

Aquí hay un tutorial para el mismo

http://www.vogella.com/articles/AndroidActionBar/article.html

Puedes usar esto. Sin embargo esto también parece ser un mal diseño. Puedes consultar los comentarios a continuación para saber por qué

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { onBackPressed(); } return super.onKeyDown(keyCode, event); } public void onBackPressed() { Intent myIntent = new Intent(MyActivity.this, MainActivity.class); myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(myIntent); finish(); return; } 

Onn botón de regreso presionado inn su actividad actual al volver a pulsar borrar la pila de actividades y naviagate a MainActivity.

También sugeriría no para exhibir un diálogo alerta en la prensa posterior del botón. Es un mal diseño. Puede buscar en SO. Leí lo mismo y fue respondido por commonsware

Puede anular el botón anterior de esta forma

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { // write your code here } return true; } 
 @Override public void onBackPressed() { super.onBackPressed(); int count = getSupportFragmentManager().getBackStackEntryCount(); Log.e("count", "is getBackStackEntryCount -> " + count); for (int i = 0; i < count; ++i) { getSupportFragmentManager().popBackStackImmediate(); Log.e("getBackStack", "IS REMOVED " + i); } // toolbar.setTitle("Dashboard"); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.