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