2010-01-14 10 views
13

Digamos que inicio mi aplicación desde la pantalla de inicio, navego por algunas actividades, luego presiono la tecla de inicio y hago otra cosa en la aplicación de Gmail.Restaurar pila de aplicaciones de Android desde el fondo

Después de terminar de revisar mi correo, presiono la tecla de inicio nuevamente para salir de la aplicación de Gmail y vuelvo a hacer clic en el ícono de mi aplicación en la pantalla de inicio para regresar.

Cuando vuelvo a mi aplicación, quiero que vuelva a la última actividad en la que estaba, NO inicie una nueva sesión. He estado tratando de resolver esto todo el día.

Mi manifiesta por mi primera actividad es el siguiente:

<activity android:name=".Main" 
       android:label="@string/app_name" 
       android:screenOrientation="portrait" 
       android:alwaysRetainTaskState="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

La categoría atribuyen LANZADOR hace que mi aplicación siempre comienzan por la actividad principal, por lo que no saben cómo hacer para restaurar la última actividad. La gente me ha dicho que use las preferencias compartidas para guardar la última actividad y cargarla en Launch, pero no creo que se haga así porque no es muy elegante.

+0

Su manifiesto se ve bien; debería funcionar como esperabas ¿Alguna posibilidad de que solo veas esto debajo del depurador, como esta pregunta virtualmente idéntica? http://stackoverflow.com/questions/2061143/android-keep-tasks-activity-stack-after-restart-from-home/2061447 –

+5

lo descubrí justo cuando recibí su respuesta, no estaba relacionado con la depuración de eclipse sino que estaba relacionado con la configuración de ejecución: tuve la acción de lanzamiento establecida en: Iniciar actividad predeterminada en la pestaña Android. Cambié esto a "No hacer nada" y funcionó. No puedo creer que me tomó tanto tiempo darme cuenta de esto! gracias – jlim

+0

¡Ah, también es bueno saber! –

Respuesta

0

Intente utilizar uno de estos en su manifiesto:

<activity android:launchMode=["multiple" | "singleTop" | 
           "singleTask" | "singleInstance"] ... 
1

Creo que es la única manera, porque lo que sucede cuando se está poniendo en marcha una aplicación es que el Lanzador de aplicaciones envía intención "android.intent.action.MAIN "Y la única actividad en su aplicación que responde a esta intención es su actividad principal, por lo que se activa. Por lo tanto, lo único que puede hacer es guardar en algún lugar su sesión y en el inicio de la actividad si ya hay una sesión guardada restaurar la aplicación al estado anterior.

0

¿Están onResume() y onPause implementados correctamente?

protected void onResume(){ 
    super.onResume(); 
} 

protected void onPause() { 
    super.onPause(); 
} 
Cuestiones relacionadas