Mange BackStackEntries en FragmentManager

Cómo borrar BackStackEntries en FragmentManager
Este es el código que utilizo para cambiar mi objeto de fragmento

 FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); Fragment homeFragment = new Home(); fragmentTransaction.replace(R.id.mainFragement, homeFragment); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); 

En una situación particular necesito quitar las entradas completas del backstack.
No encontré ningún método en particular en el gestor de fragmentos.

¿Algunas ideas?

5 Solutions collect form web for “Mange BackStackEntries en FragmentManager”

He estado trabajando en un método que creo que hace lo que estás pidiendo hacer, pero lo único que he podido averiguar de la documentación es si este método acaba de vaciar el BackStack o si hay alguna implicación en el Ver contenedor. Básicamente, encuentra la entrada situada en la parte superior de la pila y elimina todo, incluida esa entrada. Si alguien piensa que hay implicaciones negativas déjame saber porque sería muy curioso:

 public static void clearBackStack(FragmentManager manager){ int rootFragment = manager.getBackStackEntryAt(0).getId(); manager.popBackStack(rootFragment, FragmentManager.POP_BACK_STACK_INCLUSIVE); } 

Usted tiene razón, no hay manera de despejar la pila en la medida en que pueda leer a través de la documentación.

Este es un gran problema. Trate de subir el problema al rastreador de problemas de Android y espero que alguien lo mire. Todavía estoy esperando la mía .

Esto es bastante un hack, pero puedes intentar terminar tu Activity y comenzar de nuevo. Puede borrar la pila.

Si quieres borrar toda la pila de espalda probablemente es porque vas a hacer algo que no está relacionado con el contexto anterior. En ese caso, debe iniciar una nueva Actividad.

Como estoy empezando a entender, con Fragmentos, las actividades funcionarán como contenedores de Fragmentos. Usted debe tratar de mantener la independencia entre los fragmentos, mientras que la organización en Actividades basadas en su contexto.

En su caso, cuando ocurra una situación particular, puede iniciar una nueva Actividad y colocar el fragmento deseado en esta nueva Actividad en lugar de colocarla en la actividad anterior. Esta nueva Actividad manejará la nueva pila de fragmentos. De esa manera también tendrá su código un poco más encapsulado, ¿no?

Echa un vistazo a esta respuesta explicativa: Respuesta de CommonsWare

¡Espero eso ayude!

Esto funciona bien para mi:

 clearFragments(FragmentManager fm) { while (fm.popBackStackImmediate()); } 

¿Has probado las llamadas de popBackStack () en el administrador de fragmentos?

  • Administrar la barra de herramientas y el botón de retroceso de fragmento a fragmento en android
  • OnViewCreated con la biblioteca de compatibilidad
  • Fragmentos, DialogFragment y Rotación de Pantalla
  • ¿Cómo bloquear la orientación de los fragmentos sin bloquear la orientación de la actividad?
  • Búsqueda de Android con Fragmentos
  • Android: haga que la barra de búsqueda completa pueda hacer clic
  • Cómo instalar la última versión de ADT plug-in para eclipse
  • Android: NullPointerException en DialogFragment.dismissInternal en DialogFragment.dismissAllow
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.