Tengo una actividad y un fragmento que se resuelve a través de la navegación jetpack .
Una de mis actividades tiene el modo de singleTop launchMode el archivo AndroidManifest.xml.
Cuando uso el método startActivity en mi fragmento, funciona como se esperaba, no se crea ninguna Actividad nueva si ya hay una instancia de Actividad con el mismo tipo en la parte superior de la pila en la Tarea de la persona que llama.
Pero si usa startActivityForResult , las nuevas instancias de actividad seguirán creándose incluso si ya están en la parte superior de la pila de actividades.
Este problema lo enfrento en la última versión de Android 9. Probé mi código en versiones anteriores de Android (4.1) y el modo de inicio singleTop funciona como se esperaba.
Lo que es interesante si configuro el modo de inicio programáticamente con este código:
val intent = Intent(context, T::class.java) intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP El modo de inicio singleTop con startActivityForResult comienza a funcionar correctamente en Android 9 sin ningún problema.
Entonces, ¿por qué no funciona desde AndroidManifest.xml? ¿Lo que me faltaba?