popbackstackimmediate - remove fragment android
Cómo controlar Android back stack (4)
Supongamos que está utilizando el Intento para pasar a otra actividad
Intent i = new Intent(A.this,B.class);
startActivity(i);
este código lo llevará a la Actividad ''B'' y cuando presione el botón Atrás lo llevará de nuevo a la Actividad ''A''. Si no quiere volver a la actividad ''A'', puede usar ...
Intent i = new Intent(A.this,B.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
Para obtener más información acerca de Back Stack en Android, siga este enlace: http://developer.android.com/guide/components/tasks-and-back-stack.html
Digamos que tengo
A-> B-> C-> D-> E
En la parte posterior de la pila de Android. Quiero poder volver a uno de los siguientes:
A->B->C
A->B
A
¿Cómo puedo conseguir esto? Con suerte sin forzar clics de botón hacia atrás.
Usando la imagen y la información de la página oficial de desarrolladores en las tareas de Android y en la pila trasera , puede ver que de todas las otras formas de lanzar una actividad, puede garantizar dicho comportamiento solo usando FLAG_ACTIVITY_CLEAR_TOP
en sus indicadores de intención.
Su botón de regreso regular procede como sigue:
Pero cuando especificas este indicador, obtienes un comportamiento como el que necesitas, como se muestra en un ejemplo en esta fuente :
considere una tarea que consista en las actividades: A, B, C, D. Si D llama a startActivity () con un Intent que resuelve el componente de la actividad B, entonces C y D estarán terminados y B recibirá el Intento dado, lo que resultará en la pila ahora es: A, B.
En realidad, para ir "arriba" a la actividad que elijas, debes usar la navegación "arriba" como se usa en la barra de acciones:
/** used to handle the "up" button on the action bar, to go to the defined top activity as written on the manifest */
public static void goUpToTopActivity(final Activity currentActivity) {
final Intent intent = NavUtils.getParentActivityIntent(currentActivity);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
NavUtils.navigateUpTo(currentActivity, intent);
}
para usarlo, debe establecer en el manifiesto a qué actividad debe usar esta función (o puede, por supuesto, configurarlo usted mismo cambiando el código):
si usa actionBarSherlock, para cada actividad que desee que suba, use:
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.your_app.activities.MainActivity" />
si usa el marco de android (si su versión minSdk es API 16 y superior), use el atributo " parentActivityName ".
Use el indicador FLAG_ACTIVITY_CLEAR_TOP
.
Intent a = new Intent(this, A.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);