2011-10-07 13 views
11

¿es posible comenzar varias actividades a la vez? Quiero decir, ¿desde las principales actividades de crear 3 en algún orden y solo la última será visible? Hasta ahora, he podido crear solo una actividad.Android: inicie actividades múltiples

Gracias

+3

¿Por qué tendrías que hacer esto? Solo uno puede estar activo a la vez, por lo que incluso si hiciste muchos para hacerlo, solo el último se mostraría y otros se detendrían. –

+1

Absolutamente de acuerdo con el comentario superior. Debe reconsiderar la arquitectura de su aplicación, ¿por qué desea iniciar una actividad que no estará disponible para el usuario? – Egor

+1

¿por qué necesita comenzar múltiples actividades a la vez? –

Respuesta

3

Trate startActivity(new Intent(...); al final de su onCreate -Método de la primera actividad. Esto lanzará inmediatamente una nueva actividad y pausará la primera. Con la tecla de retroceso, volverá a la última actividad

+1

El problema con este enfoque es que si la actividad B se mata (termina) por el sistema después de iniciar la actividad C, y cuando el usuario vuelve a la actividad B haciendo clic en el botón Arriba, la actividad B está enCreación intentará iniciar la actividad C nuevamente. – tmin

31

Es posible que necesite algo como esto para iniciarse profundamente en la aplicación después de que el usuario haya hecho clic en una notificación para mostrar contenido recientemente agregado, por ejemplo.

Intent i = new Intent(this, A.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
startActivity(i); 

Intent j = new Intent(this, B.class); 
j.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
startActivity(j); 

Intent k = new Intent(this, C.class); 
startActivity(k); 

De esta manera se puede iniciar actividades A, B y C al mismo tiempo, y suprimir las transiciones a las actividades A y B. obtener una única transición de la actividad actual de la actividad C. Me sugieren fuertemente que usted registre las llamadas al método del ciclo de vida de la actividad (onCreate etc.) a LogCat, por ejemplo. Ayuda mucho a entender el orden de los eventos.

+1

Confirmado de trabajo, gracias: D –

+0

gracias, está funcionando. Pero tengo otro requisito. Tengo 2 actividades A y B. Necesito usar startActivityForResult para iniciar A desde B. Si hago esto, onActivityResult in A no se está llamando. ¿Hay alguna manera? – kishorer747

+0

parece que @gmale puede ayudar con esto – Ewoks

2

Esto puede ser una cosa común a hacer en respuesta a otros casos de uso en el que, básicamente, necesita para reconstruir sintéticamente la tarea (y todas las actividades que debe contener) enlaces profundos o. A veces, simplemente especificar parents en el manifiesto no es suficiente.

Eche un vistazo a TaskStackBuilder. Un ejemplo común:

TaskStackBuilder.create(this) 
     .addNextIntent(intentOnBottom) 
     // use this method if you want "intentOnTop" to have it's parent chain of activities added to the stack. Otherwise, more "addNextIntent" calls will do. 
     .addNextIntentWithParentStack(intentOnTop) 
     .startActivities(); 
Cuestiones relacionadas