¿Qué sucede cuando una aplicación en mi teléfono inteligente no responde por un período de tiempo pequeño?

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.

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.

En el “front end”, para usted, el usuario? No mucho. Solo el pequeño inconveniente de una aplicación retrasada.

Sin embargo, en el “back end”, ¿detrás de escena?

• O la aplicación está esperando un servicio, como un servidor en línea,

• tiene que ejecutar MUCHOS comandos y realizar muchas operaciones y cálculos,

• u otras cosas están sucediendo en su teléfono en este momento y todos los ciclos de la CPU son tomados por aplicaciones de mayor prioridad (su teléfono está ocupado con cosas más importantes).

Espero haber ayudado!