2010-09-22 7 views
7

Estoy comenzando con Android y tengo una pregunta para principiantes sobre el cambio entre actividades múltiples.Actividades de conmutación de ida y vuelta en Android

Entiendo que puedo ir entre dos actividades invocando un intento y luego volviendo con setResult(). Lo que quiero saber es cómo saltar entre múltiples actividades. Específicamente, quiero aprender sobre el ciclo de vida del proceso. Entiendo cómo se inicia cada actividad en Creada(), pero no estoy seguro de cómo implementar onResume() o onRestart() cuando quiero volver.

Así que básicamente tengo 3 actividades: Activity1, Activity2 y Anctivity3.

Empiezo con Activity1 y luego invoco Activity2 con un Intento, y Activity2 invoca Activity3. Usando botones. Ahora quiero volver a Activity1 desde Activity3. Yo hago lo mismo aquí también. Haga un intento y llame a startActivity (Activity1_Intent). Pero da un error de tiempo de ejecución.

Creo que necesito implementar OnResume() o onRestart(), pero no estoy seguro de cómo hacerlo. En onCreate() hago un gridView, así que cuando regrese, ¿necesito volver a hacer ese gridView?

Si alguien pudiera dar una pequeña explicación de referirse a un tutorial, sería genial. Muchas gracias.

+0

si pudiera publicar el código que causa el error de tiempo de ejecución y también el stacktrace del error, podemos ser mucho más específicos en nuestras respuestas. – Janusz

+0

finish() primera actividad antes de comenzar otra. –

Respuesta

7

En su conjunto de archivos de manifiesto android: launchMode = "singleTop" a su Activity1.

Luego de llamar a su uso Actividad1:

Intent intent = new Intent(this, Activity1 .class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

FLAG_ACTIVITY_CLEAR_TOP: Si se establece, y la actividad de su lanzamiento ya se está ejecutando en la tarea actual, a continuación, en lugar de lanzar una nueva instancia de esa actividad, la totalidad de la se cerrarán otras actividades además de esta actividad, y esta intención se entregará a la actividad anterior (ahora en la parte superior) como una nueva intención.

FLAG_ACTIVITY_NEW_TASK: Si se establece, esta actividad se convertirá en el inicio de una nueva tarea en esta pila de historial.

http://developer.android.com/reference/android/content/Intent.html

1

Dado que Android 4.0 sólo tiene que configurar en el archivo de manifiesto androide: launchMode = "singleTask" y entonces no hay necesidad de escribir Java.

Cuestiones relacionadas