widgets una sirve singletask samsung que preloaded por pasar para otro gratis dinamico compartir como celulares celular catalogo aplicaciones aplicacion activar android android-widget android-searchmanager

una - singletask android



¿Cuándo es necesario usar singleTop launchMode en un widget o aplicación de Android? (1)

Hice más lecturas en Android Docs: podría pasar toda una vida leyendo sus documentos y encontrar un nuevo detalle sutil que me rompe el cerebro :) Esto explica mis múltiples instancias que no esperaba, sin embargo, configuré para que ocurriera.

Definición de Android Doc en actividad para AndroidManifest.xml

Los modos "estándar" y "singleTop" difieren entre sí en un solo aspecto: cada vez que hay una nueva intención para una actividad "estándar", se crea una nueva instancia de la clase para responder a esa intención. Cada instancia maneja un solo intento. De manera similar, también se puede crear una nueva instancia de una actividad "singleTop" para manejar una nueva intención. Sin embargo, si la tarea de destino ya tiene una instancia existente de la actividad en la parte superior de su pila, esa instancia recibirá la nueva intención (en una llamada onNewIntent ()); no se crea una nueva instancia. En otras circunstancias, por ejemplo, si una instancia existente de la actividad "singleTop" está en la tarea de destino, pero no en la parte superior de la pila, o si está en la parte superior de una pila, pero no en la tarea de destino, una Se crearía una nueva instancia y se empujaría en la pila.

Acabo de quemarme por un widget. Pude ver la causa del problema, pero no pude determinar por qué o su solución. Mi widget estaba emitiendo una búsqueda (SearchManager) y la actividad lanzó un diálogo de búsqueda, pero cuando devolvió la llamada a mi widget, creó otra referencia al widget (es decir, el ID de hilo era el mismo, pero el ID del widget cambiado de 65 a 0).

Esto me llevó a creer que se estaba creando una nueva instancia y busqué en la documentación la configuración que se aplicaría al problema. Finalmente, tropecé con el android:launchMode="singleTop" y, tan pronto como lo puse en el AndroidManifest, ¡viola! Mi widget funcionó.

Esto me tomó la mayor parte de dos días para depurar.

¿Hay otras situaciones o hay una respuesta más técnicamente correcta a mi problema?