Después de pulsar el botón Inicio, la aplicación de reinicio muestra la actividad inicial no actual

Tengo una aplicación que tiene una actividad inicial (A – también la especificada en el lanzador) desde la que permite al usuario iniciar otra actividad (B). Estoy guardando el estado de la actividad B (onSaveInstanceState () y restaurándolo en onCreate ()).

En algunos teléfonos (N1 y Motrola Milestone a partir de ahora, pero no el Galaxy S) después de lanzar B si el usuario presiona el botón de inicio (es decir, la aplicación va al fondo) y luego vuelve a iniciar la aplicación, se muestra la actividad A de nuevo No es b). Pero si lo lanzan desde las aplicaciones 'recientes' (pulsación larga del botón Inicio) se llevan a la actividad B.

De lo que entiendo de los documentos de Android, a menos que la tarea se ha matado (no parece el caso aquí, ya que nada más está hecho, excepto volver a iniciar la actividad desde la pantalla de la aplicación) deberíamos ver la actividad B restaurado en el lanzamiento En la parte superior de la pila). Así que simplemente no puedo imaginar qué diablos está mal aquí.

Los cambios de orientación BTW durante el uso de la aplicación funcionan bien (todo se guarda y se restablece bien). Este extraño problema me ha estado molestando desde hace algún tiempo y por ensayo y error descubrí que cuando inhabilité la orientación para esa actividad y luego probar el relanzamiento conseguí que B se mostrara como se esperaba.

¿Así que nadie más ha enfrentado algo así y si es así cómo se puede resolver esto?

Estoy buscando en guardar la actividad en ejecución en SharedPreferences (como se menciona en este post ) y que la restauración de que en la actividad A, sin embargo me gustaría saber si me falta algo aquí. ¿No debería tener B restablecido en relanzar el comportamiento predeterminado?

Intente agregar esto a su actividad dentro del archivo de manifiesto:

 android:launchMode="singleTask" 

Esto resolvió el problema en mi aplicación …. si entiendo su problema correctamente.

Usa android: launchMode = "singleInstance" en su lugar

En su AndroidManifest, en la etiqueta de actividad, simplemente añada

 android:alwaysRetainTaskState="true" 
  • Cómo agregar permisos en AndroidManifest.xml en Android Studio?
  • ¿Cuál es el uso del permiso de Android Wake Lock?
  • android: <soportes-pantallas> Etiqueta
  • Manifiesto GPS: GPS en la aplicación es opcional, quiere que esté disponible para GPS menos dispositivos también
  • Cómo analizar el archivo AndroidManifest.xml dentro de un paquete .apk
  • Cómo encontrar la versión de Android de Google Play Services
  • Quitar la aplicación del programa de lanzamiento mediante programación en Android
  • Más permisos en apk cargado que en archivo de manifiesto
  • ¿Cómo actualizar el lanzador de aplicaciones después de activar / desactivar un alias de actividad?
  • Acciones personalizadas con intenciones implícitas entre aplicaciones
  • Hacer una pantalla completa en sólo la disposición-tierra de Android cuando se reproduce videoView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.