2010-01-13 7 views
9

Mi aplicación tiene dos actividades, que comienzo en este orden:Android: mantener la pila actividad de tarea después de reiniciar desde casa

HOME > A > B 

Ahora prensa Inicio y lanzamiento "A" de nuevo. Me gustaría ver la actividad "B" en la parte superior de "A", pero en su lugar obtengo "A", por lo que la pila de actividades se borra.

Manifiesto:

<activity android:name=".activity.A" android:label="A" android:alwaysRetainTaskState="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

<activity android:name=".activity.B" android:label="B"> 
    <intent-filter> 
    </intent-filter> 
</activity> 

¿Qué debo hacer?

+0

¿Seguro que está recibiendo A y no B, o es su 'android: label' for' .activity.B' un error en la pregunta? –

+0

Ah, esto es un error tipográfico para la etiqueta .activity.B (solo corregido). Todavía veo A while expect B. – alex2k8

+1

lo que quieres es un comportamiento estándar, por lo que quizás haya algún pequeño error o error en otro lugar. Intente "salir" de la aplicación por completo antes de probar esto, es decir, ábrala y presione hacia atrás hasta que la pila esté despejada, y luego reinicie. – James

Respuesta

10

me di cuenta de lo que está mal ...

La configuración es correcta, pero empecé solicitud de depuración de Eclipse, este era el problema.

Caso # 1.

Debug > A > B > HOME > A 
Get: A (stack is cleared) 

Caso # 2.

Debug > A > BACK > A > B > HOME > A 
Get: B (stack preserved) 

Caso # 3.

A > B > HOME > A 
Get: B (stack preserved) 
+0

¡Ahh, interesante! Ha habido muchas preguntas como esta en el último día o dos, así que tal vez esa es la respuesta para algunos de ellos :) –

+0

Tenga en cuenta que este comportamiento se ha corregido en la versión 0.9.6 del complemento ADT para Eclipse. Ahora puede iniciar sus aplicaciones felizmente desde Eclipse y obtener el mismo comportamiento que en un dispositivo. –

+0

¡Gracias por esta información, Christopher! – alex2k8

2

Hemos descubierto este es un problema conocido Android - ha sido rastreado oficialmente here y here.

A pesar de que dicen (no marcó) se ha corregido en la versión 0.9.6 del complemento ADT Eclipse, todavía puedo ver esto en un dispositivo real durante la actualización OTA de la aplicación. Al menos esto sucede para Android 1.6, 2.0.1, 2.1 y 2.2.

Hemos creado una solución para este problema. Compruébelo here.

1

No es tan complejo. Solo necesitas manipular el manifiesto.

AndroidManifest.xm

<activity 
    android:name=".MainActivity" 
    android:alwaysRetainTaskState="true" 
    android:exported="true" 
    . 
    . 
    . 

Lea sobre el 'android: exportada' & 'android: alwaysRetainTaskState' aquí:

android:exported

android:alwaysRetainTaskState

Cuestiones relacionadas