2011-04-01 8 views

Respuesta

3

Tengo el código de producción real que rellena los campos y solo se llama en Reanudar y funciona muy bien. pensé que una de las razones sería que tal vez onResume se llama después de que se muestra la actividad, pero un poco de google excavaciones esto (en su mayoría sin relación) Tema: http://groups.google.com/group/android-developers/browse_thread/thread/ddea4830bedf8c6c?pli=1

Cita: onResume() es, pues, la última cosa que sucede antes la interfaz de usuario se muestra

Esto es lo que dice Dianne Hackborn así que creo que podemos confiar en ella :)

+0

Eso trae otra pregunta: ¿Qué debería hacer en onCreate además de establecer el contexto? ¿Debería configurar a los oyentes o podría esperar? – theblitz

+0

setOnClickListener()? Solo necesita hacer eso una vez por vida de actividad para que entre en Crear(). onResume() se llama muchas veces, al cambiar de aplicación, pero también si comienzas otra actividad, termina y vuelve al tuyo. – Torp

1

en realidad he visto aplicaciones (en mi aplicación y otros), donde los campos sólo se rellenan en onCreate(), pero no en onResume().

Permite llamar a esa aplicación 'A'.

El efecto fue que cuando el usuario presionó el botón de inicio, se dirigió a una aplicación diferente y luego regresó a 'A', la pantalla se quedó en negro, ya que 'A' todavía estaba en la memoria y el sistema no molestaba para llamar al onCreate(), pero directamente entró en onResume().

Así que, básicamente, diría (y estos segundos lo que @Torp escribió) llene la interfaz de usuario en onResume() y listo.

Pero esta respuesta está ligeramente fuera de tema, ya que no responde a su pregunta "por qué".

0

No se rellena en Reanudar porque se llamará cada vez que se muestre la actividad.

Por lo general, desea crear la menor cantidad posible de objetos, de modo que los cree de una vez por todas en onCreate, y luego siempre puede verificar que estén actualizados en onResume.

Cuestiones relacionadas