Android: abrir la actividad sin guardar en la pila
Tengo 2 actividades: Principal y Lista.
Desde Main puede abrir List; En la lista puede abrir Main.
- Detener fragmento de ser recreado después de reanudar?
- Después de que el fragmento de cambio de configuración de backstack ahora está compartiendo el FrameLayout?
- PopBackStack hace que llamar a oncreateView del fragmento una y otra vez
- Ocultación de las pestañas de la acciónBar con el modo de navegación que afecta negativamente a la fragilidad de fragmento
- ¿Cómo reemplazar el fragmento C con el fragmento A cuando se pulsa el botón Atrás?
Me gustaría que cada apertura de List no se salve en la 'historia'. Por lo tanto, al pulsar de nuevo desde Main no puede volver a List.
¿Es posible?
- ¿Cómo manejar el botón de nuevo utilizando el buscapersonas?
- Cómo conservar la pila trasera actual (o tarea) cuando se hace clic en la notificación?
- Fragmentos onResume de la pila trasera
- Fragmento onResume () & onPause () no se llama en backstack
- Métodos de fragmento: attach (), detach (), remove (), replace (), popBackStack ()
- Android deep linking - Pila trasera
- Problemas con Android Fragment pila trasera
- SavedInstanceState al restaurar el fragmento de la pila trasera
Al iniciar la Activity
su lista, establezca sus indicadores de Intent
manera:
Intent i = new Intent(...); // Your list's Intent i.setFlags(i.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY); // Adds the FLAG_ACTIVITY_NO_HISTORY flag startActivity(i);
El indicador FLAG_ACTIVITY_NO_HISTORY
mantiene la nueva Activity
se agrega a la pila del historial.
Nota: Como señala @Sam, puede utilizar i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
en lugar. No hay diferencia funcional.
En el archivo de manifiesto, añada:
android:noHistory="true"
A la actividad que no desea mantener en la pila.
Utilice la nueva tarea con borrar. Esto funcionó en mi caso cuando las otras opciones no.
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
Borra toda la pila de historiales e inicia una nueva actividad en Android
Parece que si llama a finish () en su actividad inmediatamente después de haber abierto otro, el que está terminado se quita de la pila.
por ejemplo:
Intent intent = new Intent(this, NextActivity.class); startActivity(intent); finish();
Añada la bandera FLAG_ACTIVITY_NEW_TASK
a su Intent
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK
En mi caso particular, FLAG_ACTIVITY_NO_HISTORY
no funcionó. Tampoco FLAG_ACTIVITY_NEW_TASK
o FLAG_ACTIVITY_CLEAR_TASK
solos.
Sin embargo, FLAG_ACTIVITY_NEW_TASK
y FLAG_ACTIVITY_CLEAR_TASK
juntos funcionaron.
Intent intent = new Intent(FooActivity.this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent);
¿No puede anular el botón de retroceso en la actividad en particular para detener la funcionalidad de "devolución"?
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { return true; } return super.onKeyDown(keyCode, event); }
- Carpetas de diseño de Android: diseño, layout-port, layout-land
- Diálogo Android, mantener el cuadro de diálogo abierto cuando se pulsa el botón