2010-04-24 21 views
8

He leído que es importante llamar a setContentView() al principio de una actividad ya que crea los objetos de vista que pueden ser manipulados por el código posterior en onCreate().Android setContentView operación

En términos de ciclo de vida, la vista se dibuja tan pronto como se llama a setContentView(), o permite que la función onCreate() construya/rellene la información en los objetos de visualización y espere a dibujar realmente después de completar onCreate()?

Gracias!

Respuesta

9

La tesis se ven inmersos en pantalla como pronto como setContentView() se llama

o permite onCreate() función de construir/poblar la información en los objetos de la vista, y espera para dibujarla después de completar onCreate()?

Sí. Los objetos View se crean inmediatamente como parte de setContentView(). Sin embargo, todas las operaciones de dibujo (desde onCreate() o desde cualquier otro lugar) realmente hacen que los mensajes se coloquen en una cola de mensajes a través de la cual funciona el hilo principal de la aplicación.

+0

¡Gracias! ¿Puede indicarme un buen recurso para explicar con mayor profundidad la cola de mensajes que procesa el hilo principal de la aplicación? Este es un concepto nuevo para mí, ya que estoy comenzando la programación de Android. – stormin986

+2

No hay mucho escrito sobre esto directamente. La regla general es: si modifica la pantalla, el cambio de pantalla no tendrá efecto cuando llame al método (por ejemplo, 'setText()' en un 'TextView'). Más bien, su llamada a método crea un objeto que representa la solicitud, que va en la cola de mensajes. Esa cola se procesa cuando el hilo principal de la aplicación no está vinculado ejecutando su código (por ejemplo, 'onCreate()'). Esta es la razón por la cual se le dice que mantenga las cosas de larga ejecución fuera del hilo principal de la aplicación. – CommonsWare

+2

Esto es probablemente obvio para la mayoría, pero como principiante también lo encontré útil (de la documentación del objeto Handler) ya que no conocía esa cola de mensajes: "Cuando se crea un proceso para su aplicación , su hilo principal está dedicado a ejecutar una cola de mensajes que se ocupa de administrar los objetos de la aplicación de nivel superior (actividades, receptores de difusión, etc.) y cualquier ventana que creen ". – stormin986

Cuestiones relacionadas