Detener el bloqueo de navegación de Android.Hay miles de accidentes mientras … | Via Xsims | Agosto 2021
Cuando utiliza el sistema de navegación oficial de Android, miles de bloqueos pueden resultar muy frustrantes. Esto es lo que nuestros probadores y usuarios han experimentado en nuestra aplicación todos los días desde el lanzamiento.
Para navegar en la aplicación de Android del fragmento, usamos un controlador de navegación.Todas las rutas están configuradas en una nav_graph.xml y Lo llamamos en Fragmento:
Nuestros probadores nos mostraron cómo reproducir el bloqueo de navegación haciendo doble clic rápidamente en el botón responsable de navegar a algún lugar.
Mismo resultadoTonelada Esto puede suceder si hace clic en el botón responsable de iniciar una tarea larga (por ejemplo, guardada en una base de datos) y la navegación hacia atrás finaliza cuando se presiona el botón Atrás.
El problema es que incluso si verifica el Fragmento en el que se encuentra, antes de llamar a NavController, la navegación de su operación será como «poner en la cola», incluso si ya ha navegado, se puede ejecutar.
Después de la investigación, encontramos una variedad de soluciones (obviamente, esto es un dolor para muchos desarrolladores …):
- Encuentra NavController en otro lugar:
- Impedir el botón de doble clic …
- La solución más completa pero más complicada de implementar:
- Como empresa emergente, en lo que respecta a nuestras prioridades, actualmente disponemos de poco tiempo y recursos para encontrar soluciones complejas. Pero cuando tengamos más tiempo o si comenzamos / yo comenzamos un nuevo proyecto de Android, definitivamente lo haré.
¡Necesitamos una solución rápida ahora!
- Evitar hacer doble clic en el botón … resolverá uno de nuestros problemas, pero no todos los problemas que mencioné anteriormente.
- Encontrar el controlador de navegación en otro lugar no es suficiente y aún pueden ocurrir bloqueos.
Entonces esta es nuestra (fea) solución:
¡Hey, espera! ¡Este es un intento / captura silencioso! 😡
sí. Cuando decidimos implementar este método de navegación, realmente no tenía la confianza. Ponemos un método de informe de fallos en caso de que el error sea razonable, unos meses después …