Espero que alguien pueda ayudarme a descubrir, si no una solución, al menos una explicación de un comportamiento.
El problema:
En algunos dispositivos, presionar el ícono del iniciador hace que se reanude la tarea actual, en otros resulta en que se dispare la intención de inicio inicial (reiniciando efectivamente la aplicación). ¿Por qué pasó esto?
El detalle:
Cuando presiona el "Icono del iniciador", la aplicación se inicia normalmente: es decir, supongo que se inicia una intención con el nombre de su primero Activity
con la acción android.intent.action.MAIN
y la categoría android.intent.category.LAUNCHER
. Sin embargo, este no siempre puede ser el caso:
En la mayoría de los dispositivos, si presiona el ícono del iniciador después de que la aplicación ya se esté ejecutando, la Actividad actualmente en ejecución en ese proceso se reanudará ( NO la inicial Activity
). Se reanuda de la misma manera que si lo hubiera seleccionado en "Tareas recientes" en el menú del sistema operativo. Este es el comportamiento que quiero en todos los dispositivos.
Sin embargo, en otros dispositivos seleccionados se produce un comportamiento diferente:
En el Motorola Xoom, cuando presiona el ícono del iniciador, la aplicación siempre iniciará el inicio inicial
Activity
independientemente de lo que se esté ejecutando actualmente. Supongo que los íconos del iniciador siempre inician la intención "LANZADOR".En el Samsung Tab 2, cuando presiona el ícono del iniciador, si acaba de instalar la aplicación, siempre iniciará la inicial
Activity
(igual que el Xoom); sin embargo, después de reiniciar el dispositivo después de la instalación, el ícono del iniciador en su lugar reanudar la aplicación ¿Supongo que estos dispositivos agregan "aplicaciones instaladas" en una tabla de búsqueda en el inicio del dispositivo que permite que los íconos del iniciador reanuden correctamente las tareas en ejecución?
He leído muchas respuesta que el sonido similar a mi problema, sino simplemente añadiendo android:alwaysRetainTaskState="true"
o el uso de launchMode="singleTop"
la Activity
no son la respuesta.
Editar:
Después del lanzamiento más reciente de esta aplicación, encontramos que este comportamiento ha comenzado a ocurrir en todos los dispositivos después del primer reinicio. Lo que me parece una locura, pero mirando a través del proceso de reinicio, en realidad no puedo encontrar lo que está mal.
finish()
a ellos en los casos en que comienza el primero de Activity
nuevo en lugar de reanudarlos.