vida studio savedinstancestate example event ciclo activity android android-intent event-handling override

studio - onstart android example



Android anulando onBackPressed() (8)

Al principio debe considerar que si su actividad a la que llamé A extiende otra actividad (B) y en ambos

Si desea utilizarlos en la función de copia impresa, todos los códigos que tenga en B también se ejecutarán en A. Entonces, si quieres separarlos, debes separarlos. Significa que A no debe extender B, entonces puede tener activado por separado para cada uno de ellos.

¿Es posible anular onBackPressed () para una sola actividad?

En el botón Atrás, haga clic en Deseo invocar un diálogo sobre una Actividad específica, pero en todas las demás actividades quiero que funcione como antes (yendo a actividades anteriores). . .

Gracias por su información de antemano.

EDITADO

Gracias a todos por sus artículos, ya tuve todo lo que me dijeron, pero mi problema fue que cuando estaba presionando el botón "Atrás" en otra actividad, iba a mi actividad anterior (la que tenía el botón Atrás) y pensé que no estaba funcionando, pensé que estaba anulando onBackPressed () en toda la aplicación, ahora lo tengo: D


La mejor y más genérica forma de controlar la música es crear una madre. Actividad en la que se anula la actividad de startActivity(Intent intent) ; en ella se pone shouldPlay=true y onBackPressed() - en ella se pone shouldPlay = true . onStop - en él pones un mediaPlayer.stop condicional con shouldPlay como condición

Luego, simplemente extienda la actividad de la madre a todas las demás actividades, y no se necesita duplicar el código.


Prueba esto, funciona

@Override public void onBackPressed(){ super.onBackPressed(); Intent i=new Intent(Intent.ACTION_MAIN); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); finish(); }


Puede llamar a onBackPressed () y si desea que se muestre alguna actividad después del botón Atrás, mencione el

Intent intent = new Intent(ResetPinActivity.this, MenuActivity.class); startActivity(intent); finish();

eso funcionó para mí.


Simplemente llame al método onBackPressed() en la actividad en la que desea mostrar el diálogo y en su interior muestre su diálogo.


Simplemente use el siguiente código con la inicialización de un campo

private int count = 0; @Override public void onBackPressed() { count++; if (count >=1) { /* If count is greater than 1 ,you can either move to the next activity or just quit. */ Intent intent = new Intent(ResetActivity.this, LoginActivity.class); startActivity(intent); finish(); overridePendingTransition (R.anim.push_left_in, R.anim.push_left_out); /* Quitting */ finishAffinity(); } else { Toast.makeText(this, "Press back again to Leave!", Toast.LENGTH_SHORT).show(); // resetting the counter in 2s Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { count = 0; } }, 2000); } super.onBackPressed(); }


onBackPressed() método onBackPressed() según el ejemplo de codeMagic, y elimine la llamada a super.onBackPressed(); si no desea que se ejecute la acción predeterminada (finalización de la actividad actual).


Sí. Solo anularlo en esa Activity con

@Override public void onBackPressed() { // code here to show dialog super.onBackPressed(); // optional depending on your needs }

no pongas este código en ninguna otra Activity