2011-04-26 15 views
7

Duplicar posible:
Removing an activity from the history stackRemove "Inicio" -Actividad de la historia

Busco a una solución para eliminar el startActivity de la pila de la historia. StartActivity es el que se iniciará al principio. Estoy usando esta clase para verificar algunos valores de usuario y quiero redirigir al usuario a MainActivity si todo es correcto.

He tratado de establecer un indicador:

addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

pero esto no hace lo que debe.

App starts -> StartActivity -> MainActivity -> PRESS back -> the app should end 

que hace:

App starts -> StartActivity -> MainActivity -> PRESS back -> StartActivity 

Gracias por su ayuda!

Editar: Este es el código que estoy utilizando para iniciar el MainActivity:

Intent i = new Intent(context, DashBoardActivity.class); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
+0

¿podría publicar el código para cambiar de actividad? – anticafe

Respuesta

7

Debe utilizar FLAG_ACTIVITY_NO_HISTORY al iniciar startActivity para lograr un comportamiento descrito.

Lo mismo que puede lograr si establece el atributo noHistory en true en su AndroidManifest.xml.

+0

nota: este método no funciona si intenta utilizar un proveedor de inicio de sesión como Facebook (que inicia su propia actividad y luego lo regresa a su actividad de inicio) – handler

+0

Esa es mi situación, ¿algún consejo sobre cómo lidiar con eso? – serj

12

Simplemente puede llamar al finish() después de iniciar MainActivity.

Intent i = new Intent(context, DashBoardActivity.class); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
finish(); 
+0

Y, por supuesto, este enfoque también funciona, pero cuando mencionó la eliminación de la historia, lo primero que se me vino a la cabeza fue la bandera. – Zelimir

+0

Sí, su solución podría ser la forma correcta de archivarla. Mi uno es más rápido y sucio. ;) – Flo

+0

Gracias, su solución funcionó. Pero la otra solución, @Zelimir, parece ser más elegante. – Mark

Cuestiones relacionadas