Hola a todos, en la app que estoy desarrollando me encuentro con que tengo que eliminar unas activities de la pila de activities de android.
La cosa es que tengo un asistente paso a paso para crear una asignatura, y me interesa que cuando termine el asistente y se cree dicha actividad me vaya a una activity donde muestra el listado.
Tengo dos rutas desde donde añadir una nueva asignatura
Desde el listado de asignaturas
Menu principal -> Listado asignaturas -> Añadir asignaturas -> Nueva asignatura 1/3 -> Nueva asignatura 2/3 -> Nueva asignatura 3/3 -> Listado de asignaturas
Desde el menu principal
Menu principal -> Añadir asignaturas -> Nueva asignatura 1/3 -> Nueva asignatura 2/3 -> Nueva asignatura 3/3 -> Listado de asignaturas
La cosa es cuando termine el asistente debo volver al listado de asignaturas ELIMINANDO todas las pantallas del asistente de la pila para que cuando se haga back, no muestre el asistente de nuevo.
Para hacer esto hacia uso del
Intent in = new Intent(getApplicationContext(),ListCourseActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(in);
finish();
Pero que pasa? Que si vengo del listado de asignaturas, como esta cargado en pila, se limpia (CLEAR_TOP) todo lo que esta tiene por encima (los asistentes) y me devuelve al listado, si hago back, vuelvo al mainmenu.
El problema es si vengo del mainMenu, como ListadoAsignaturas no esta en la pila, cuando acaba el asistente la lanza al principio de la pila, con lo que al hacer CLEAR_TOP no estoy borrando nada ya que los otras dos activity (asis1, asis2) estan por debajo de esta.
Se me ha ocurrido que si entran a crear asignatura desde el main menu, lanzar la activity de listado y pasarle un putExtra indicando si debe quedarse como tal, o ella misma lanzar la de crear asignatura.... pero quiza hay una forma mas limpia y profesional de hacer esto no ?