Cómo borrar backstack de una tarea y dejar sólo la nueva actividad?

Quiero borrar el backstack cuando empiezo una nueva actividad.

El caso exacto de mi problema es el siguiente: Tengo actividades como ésta A> B> C> D> E "A" es una actividad de registro y "B" es una actividad de registro de confirmación. Quiero que cuando el usuario inicie la actividad "B" que no pueda volver a la actividad "A", también cuando el usuario alcance la actividad "C", la actividad "A" y "B" sería inútil, no necesito Usuario de nuevo a ellos.

También cuando el usuario se mueve a la actividad "D" de "C", puede volver a "C" pero si se mueve más a la actividad "E", no puede volver a ninguna de las "C" o "D "Actividades.

Después de mucha investigación, lo mejor que tengo es usar flag: FLAG_ACTIVITY_NO_HISTORY , pero tiene dos problemas para mi caso:

  1. En la actividad "A" si el usuario navega lejos de mi aplicación (por ejemplo, a la pantalla de inicio), destruir esa actividad y, por tanto, toda la información que el usuario ingresó se pierde!
  2. Actividad "C" Quiero mantenerlo en la historia (backstack) si mientras el usuario navega a la actividad "D" pero cuando el usuario se mueve a la actividad "E" quiero eliminarla.

No puedo encontrar una solución para este problema hasta ahora, creo que sería más fácil si hay algo para borrar la backstack de la tarea actual!

Mi soporte mínimo de SDK es 5.

Gracias por adelantado.

One Solution collect form web for “Cómo borrar backstack de una tarea y dejar sólo la nueva actividad?”

Si está utilizando API de nivel 11 o superior, puede agregar simplemente FLAG_ACTIVITY_CLEAR_TASK a su intención, que borrará todas las otras actividades de su tarea.

De lo contrario, esto podría ayudar: Borrar la pila de actividad completa de Android en SDK antiguos (que carecen de FLAG_ACTIVITY_CLEAR_TASK)

Otro enfoque, sería para que usted termine las actividades que ya no quieren que el usuario pueda volver a. Por ejemplo, si llama a ActivityA.finish () antes de pasar a B, la actividad se eliminará de la tarea.

Cuando inicie la actividad D, puede iniciarla con startActivityForResult () desde C, y cuando cierre D, envíe el resultado a C y, a continuación, termine la actividad C antes de navegar a E.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.