2011-10-12 23 views
5

¿Podría alguien explicarme por qué solo el hilo de la interfaz de usuario en Android puede actualizar la interfaz de usuario? ¿Por qué no puede ningún otro subproceso actualizar la interfaz de usuario?¿Por qué solo la hebra de la IU en Android actualiza la IU?

+2

Esa es la forma en que casi todos los marcos de UI que he visto funcionan ... –

+2

ver: http://stackoverflow.com/questions/5544447/why-are-most-ui-frameworks-single-threaded – Boann

Respuesta

8

Documentation estados que Android UI Toolkit es no thread-safe. Por lo tanto, el modelo de subproceso único asegura que la interfaz de usuario no se modifique mediante diferentes subprocesos al mismo tiempo.

3

Como se indica en la guía android developper sobre Tema:

Cuando su aplicación lleva a cabo una intensa labor en respuesta a la interacción del usuario, este modelo solo hilo puede producir malos resultados a menos que implemente la aplicación correctamente. Específicamente, si todo está sucediendo en el hilo de la interfaz de usuario, la realización de operaciones largas como el acceso a la red o las consultas a la base de datos bloquearán toda la interfaz de usuario. Cuando el hilo está bloqueado, no se pueden enviar eventos, incluidos los eventos de dibujo. Desde la perspectiva del usuario, la aplicación parece bloquearse. Peor aún, si el hilo de la interfaz de usuario está bloqueado durante más de unos pocos segundos (unos 5 segundos en la actualidad), se le presenta al usuario el infame diálogo de "aplicación que no responde" (ANR). El usuario puede decidir abandonar su aplicación y desinstalarla si no está contento.

Además, el kit de herramientas de interfaz de usuario Andoid no es seguro para subprocesos. Por lo tanto, debe no manipular su UI desde una cadena de trabajo: debe hacer toda la manipulación a su interfaz de usuario desde el subproceso de interfaz de usuario. Por lo tanto, hay son simplemente dos reglas a un modelo único hilo de Android:

No bloquee el hilo de interfaz de usuario no acceda al kit de herramientas de Android interfaz de usuario de fuera del hilo de interfaz de usuario

Cuestiones relacionadas