2012-07-30 32 views
7

enter image description hereVolver a la pantalla anterior sin crear nueva instancia

Como se explica en la imagen, el flujo es algo como esto. Por lo tanto, cada vez que el usuario haga clic en el botón del logotipo, debe invocarse Actividad A. Como solución simple, podemos usar este método ...

Intent intent = new Intent(activity, activityToStart); 
startActivity(intent); 

Pero esta actividad creará una nueva actividad para mi aplicación. pero necesito llamar a la misma instancia de la actividad a medida que avanzamos en el diagrama de flujo. de la Actividad A a la B y luego otra vez a B se puede llamar fácilmente llamando al finish() pero de la Actividad C o D, cómo volver a A.

Me estoy quedando sin ideas pero sin obtener ningún resultado fructífero. Por favor, ayúdame si tienes alguna sugerencia o en cualquier lugar me estoy equivocando. Gracias por adelantado.

+1

Eche un vistazo a [FLAG_ACTIVITY_CLEAR_TOP] (http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP) – Praveenkumar

Respuesta

12

Para volver de la D a la A, use las Bandas de intención.

Intent intent = new Intent(activity, activityToStart); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 
startActivity(intent); 

FLAG_ACTIVITY_CLEAR_TOP, tendrá lugar de crear una nueva actividad, se invocará la actividad en la pila, y se abrirá todas las actividades durante la actividad que se invocan.

+0

ok Gracias. Voy a darle una oportunidad. – Android

+0

+1 Solución adecuada. – Praveenkumar

0

Al hacer de la Actividad A una "SingleTask" puede lograr esto. Cuando una Actividad está en SingleTask al hacer clic en el botón Inicio, las demás actividades se eliminarán de la pila.

remitir estas enlace para obtener más información de las Actividades Realizadas Android ...

Link 1 - Android Fundamentals

Link 2 - Another Similar Question

+0

No piense de esta manera que no podré lograr la funcionalidad del botón de retroceso. Gracias de todos modos. – Android

0

Uso ViewFlipper para ir y volver entre las diferentes ventanas en la misma actividad.

ViewFlipper vf = (ViewFlipper) findViewById(R.id.view_flipper); 

Para ir a la siguiente ventana

vf.showNext(); 

Para ir a la ventana anterior

vf.showPrevious(); 
0

en lugar de utilizar

Intent intent = new Intent(activity, activityToStart); 
startActivity(intent); 

Uso

Intent intent = new Intent(activity, activityToStart); 
startActivityforResult(intent,1234); 

Esto asegurará que la actividad A no se mate y cuando termine su actividad C, la actividad A se reanudará.

Nota: - Siempre que se crea una nueva actividad, sin terminar (Salir) la actividad de acogida, la actividad de host se guarda en la pila en orden LIFO

LIFO: - Last In First Out

+0

Gracias por la explicación. Definitivamente voy a probar tu solución. – Android

0

No estoy seguro, esta es la manera correcta o no, ¡pero puedes intentarlo!

Puede finalizar() la actividad actual cuando abra la nueva a partir de la Actividad-B.

es decir

Para abrir Actividad-C => acabado Actividad-B y empezar Actividad-C

Para abrir Actividad-D => acabado Actividad-C y empezar Actividad-D

ahora cuando presione hacia atrás, se abrirá Activity-A.

+0

Gracias. Lo intentaré según tu sugerencia – Android

Cuestiones relacionadas