Pregunta

Sé que ha habido algunas publicaciones para lo que estoy a punto de preguntar, pero no puedo encontrar ninguna con la respuesta correcta.

Desde mi entendimiento, si su actividad principal (llamémoslo A) LaunchMode está configurado en SingletAk, y A ha iniciado la actividad B, entonces un clic en el botón de inicio destruirá la pila de historial y el relanzamiento de la aplicación lo llevará de regreso a un y no B.

Tengo el lanzamiento de Mode establecido en SingletAk porque tengo una notificación persistente y no quiero tener múltiples instancias de la actividad principal para aparecer cada vez que el usuario hace clic en la notificación.

¿Hay algo que me falta que me permita atender a ambos?

Así que pregunto si hay una manera de asegurarme de que cada vez que el usuario desee lanzar la aplicación, desde la notificación o no, para llevarlo a la última actividad (actual).

Si cambio la sesión de lanzamiento a singletop, funciona, pero obtengo múltiples instancias de la actividad principal cada vez que lo lance.

Gracias

Andreas

¿Fue útil?

Solución

¿Ha intentado configurar la lanzamiento de lanzamiento en singleto a todas las actividades de su aplicación? Porque lo que obtengo de su consulta es que la actividad principal no es soltero, por lo que podría conducir a otra instancia de la actividad principal que se llama una vez que la actividad principal se lanza a partir de la actividad que se lanzó desde la actividad de notificación.

O puede especificar el lanzamiento del Mode como un atributo a la etiqueta de la aplicación en el manifiesto.

Otros consejos

Utilizo el siguiente código para evitar múltiples instancias de la actividad

Intent intent=new Intent(this,RICO.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);

Cambiar el manifiesto no me parece apropiado

Tengo problemas con los dos aproximados. La notificación funciona perfecta solo en esta condición: - Uso del botón Atrás en la actividad principal (con el historial que contiene solo la actividad), no usando el botón de inicio, no utiliza la notificación si la actividad que está llamando está en la parte superior y activa

En cualquier otro caso, la notificación ya no puede llamar en primer plano la actividad utilizando "nueva intención (...)"

Encontré la combinación alquímica de opciones de manifiesto y banderas de intención para obtener lo que necesitaba:

Intent intent= new Intent(this, YaampActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

Usando estas opciones

android:launchMode="singleTask"
android:taskAffinity=""
android:excludeFromRecents="true"

Dentro del elemento.

Ahora tengo una notificación que genera la actividad principal (si esa actividad aún no está en primer plano) y su comportamiento es correcto incluso si la actividad está "cerrada" presionando el botón de inicio y/o el trasero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top