Estoy tratando de escribir una prueba de instrumentación de actividad de Android que se detiene (onPause()
, luego onStop()
) y reinicia la actividad actual. Intenté¿Cómo detener y reiniciar una actividad en una prueba de instrumentación de Android?
activity.finish();
activity = getActivity();
... pero eso no parece funcionar correctamente.
El objetivo de la prueba es afirmar que los datos del formulario se almacenan durante el método onPause()
y volver a leerlos durante el método onStart()
. Funciona al hacerlo manualmente, pero la prueba falla, de la que saco la conclusión de que activity.finish()
parece ser la forma incorrecta de detener y reiniciar una actividad.
Editar: Mi problema principal parece haber sido un problema de sincronización. Después de reiniciar la actividad, el corredor de prueba no esperó a que finalizaran todos los manejadores de eventos. La siguiente línea se detiene la ejecución de la prueba hasta que la actividad está inactivo:
getInstrumentation().waitForIdleSync()
Además de eso, echar un vistazo a la respuesta aceptada para obtener más información valiosa sobre el ciclo de vida.
¿Qué parece exactamente que no funciona correctamente? – yorkw
@yorkw He actualizado la pregunta, gracias por el comentario. –
¿A qué te refieres cuando dices "hacerlo manualmente?" –