Las aplicaciones tienen algo llamado hilo de interfaz de usuario. Este hilo es un proceso que se encarga de dibujar la interfaz de usuario y manejar los eventos de entrada y salida del usuario. Los subprocesos solo pueden hacer una cosa a la vez, y el trabajo de dibujar la interfaz de usuario y manejar la entrada del usuario es mucho trabajo.
Por eso, la recomendación es que las aplicaciones nunca hagan un trabajo complicado en el hilo de la interfaz de usuario.
Pero a veces, los desarrolladores de aplicaciones se olvidan de esta recomendación y hacen algo complejo y lento en el hilo de la interfaz de usuario en lugar de comenzar un nuevo hilo. Cuando esto sucede, el hilo de la interfaz de usuario no podrá dibujar y manejar su entrada de usuario mientras ejecuta las cosas complejas que el desarrollador le dijo que hiciera. Es entonces cuando su aplicación deja de responder por un tiempo.
Para solucionar esto, el desarrollador de una aplicación debe buscar todas las cosas que son pesadas y complejas y se están ejecutando en el hilo de la interfaz de usuario y moverlas a un hilo diferente.
- ¿Qué pasaría si un oficial de policía intentara detenerlo por exceso de velocidad pero usted entrara a su casa y no abriera la puerta? ¿Tendrían que obtener una orden para hacer algo?
- ¿Hay algún animal que tenga un miedo innato a los humanos como tememos a las serpientes, las arañas y los grandes felinos?
- Si retrocedo 1000 años en el tiempo, ¿puedo construir una computadora personal moderna y cómo?
- Si MS Dhoni será el primer ministro de India, ¿puede liderar a India como el equipo de Indian Cricket?
- ¿Qué pasa si Anakin venció a Obi-Wan en Ep. 3?
También podría darse el caso de que se estén ejecutando demasiadas cosas al mismo tiempo, y aunque todo esté sucediendo en un hilo diferente, la capacidad del teléfono simplemente no es suficiente para ejecutar todos los hilos lo suficientemente rápido, lo que significa que para termine de ejecutar todo, tendrá que abandonar el hilo de la interfaz de usuario por un tiempo, dejando que su teléfono no responda al usuario.