vida una tipos studio nombre ciclo cambiar aplicacion activity actividad android view android-activity loaded

tipos - ¿Cómo puedes saber cuando una actividad de Android ha terminado de cargarse?



set title activity android (3)

Puede haber una forma más elegante, pero ¿intentó configurar un valor booleano al final de su método OnCreate ()?

Estoy en el proceso de trabajar en un conjunto de pruebas automatizado para nuestra aplicación de Android y tener problemas para esperar a que las actividades se carguen por completo. Puedo llamar a getActivity, pero solo porque muestra la actividad que espero ver en mi prueba, no siempre significa que los componentes de la actividad estén listos para usar (completamente cargados). Mirar a través de la Actividad API no apareció, y otros métodos parecen demasiado invasivos y han estropeado el estado inicial de las pruebas. ¿Alguien sabe si hay una manera de preguntar a la aplicación o la máquina virtual si la actividad actual está cargada?


Si crea un método setUp() como este en su caso de prueba extendiendo ActivityInstrumentationTestCase2<MyActivity>

@Override protected void setUp() throws Exception { super.setUp(); final MyActivity activity = getActivity(); tv1 = (EditNumber)activity.findViewById(resId1); tv2 = (EditNumber)activity.findViewById(resId2); }

Su actividad será completamente operativa y el diseño cargado, demostrado en este caso por el hecho de que puede acceder a las Vistas y su contenido.

@SmallTest public void testSimpleCreate() { final MyActivity activity = getActivity(); assertNotNull(activity); assertNotNull(tv1); assertEquals("mystr1", tv1.getText().toString()); assertNotNull(tv1); assertEquals("mystr2", tv2.getText().toString()); }


Como mencioné en un comentario , su jerarquía de vistas debería estar funcionando después de su llamada a setContentView() principio de onCreate() . Nunca he tenido problemas como este con alguna actividad o clase de prueba.

No estoy seguro de que esto getInstrumentation().waitForIdleSync() de ayuda para este caso específico, pero en general, puede determinar cuándo la cola de eventos de IU está vacía llamando a getInstrumentation().waitForIdleSync() . Eso bloqueará hasta que no haya más eventos de IU para procesar.