2010-03-31 9 views
108

En una actividad dada de Android, me gustaría iniciar una nueva actividad para el usuario en algún momento. Una vez que abandonan la primera actividad y llegan a la segunda, la primera actividad está obsoleta y quiero eliminarla por completo para que no se pueda volver a acceder desde el botón Atrás.¿Cómo matar una actividad de Android al dejarla para que no se pueda acceder desde el botón Atrás?

¿Cuál es la mejor manera de lograr esto? ¿Cómo puedo matar o destruir esta actividad inmediatamente después de que el usuario ha lanzado la nueva actividad?

Respuesta

190

sólo tiene que llamar finish()

Intent intent = new Intent(this, NextActivity.class); 
startActivity(intent); 
finish(); 
+0

Gracias. Para ir un paso más allá, estoy comenzando la nueva actividad desde una ventana de diálogo: ¿funcionaría el código de la misma manera? – JohnRock

+0

@CaseyB gracias por esto ... pero quiero saber, ¿puedo llamar a este método desde un servicio? Si es así, ¿cómo? – swiftBoy

+1

Los servicios no tienen una actividad, lo que significa que no estarán en la pila de actividades para volver. Si desea eliminar alguna actividad de su servicio, debería poder llamar a myActivity.finish(); – CaseyB

88

Configuración android:noHistory="true" sobre la actividad en su manifiesto a continuación eliminará la actividad de la pila cada vez que se navega lejos de. ver here

7

Sí, todo lo que necesitas hacer es llamar a finish() en cualquier actividad que quieras cerrar.

4

escribir esto en cada "nueva actividad" después de inicializar su nueva por intención>

Intent i = new Intent(this, yourClass.class); 
startActivity(i); 
finish(); 
6

puede utilizar:

intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
4

También puede agregar a su etiqueta android:noHistory="true"Activity en AndroidManifest.xml.

<activity 
      ... 
      android:noHistory="true"> 
</activity> 
0

Agregue este atributo a su actividad en el archivo de manifiesto. android: noHistory = "true"

Cuestiones relacionadas