Sto provando a scrivere un test della strumentazione di attività Android che si arresta (onPause()
, quindi onStop()
) e riavvia l'attività corrente. Ho provatoCome interrompere e riavviare un'attività in un test di strumentazione Android?
activity.finish();
activity = getActivity();
... ma quello non sembra funzionare correttamente.
L'obiettivo del test è quello di affermare che i dati del modulo sono memorizzati durante il metodo onPause()
e rileggere durante il metodo onStart()
. Funziona quando lo fai manualmente, ma il test fallisce, da cui traggo la conclusione che activity.finish()
sembra essere il modo sbagliato di fermare e riavviare un'attività.
Edit: Il mio problema principale sembra essere stato un problema di sincronizzazione. Dopo aver riavviato l'attività, il test runner non ha atteso il completamento di tutti i gestori di eventi. La seguente riga interrompe l'esecuzione di test fino a quando l'attività è inattivo:
getInstrumentation().waitForIdleSync()
Oltre a questo, dare un'occhiata alla risposta accettata per maggiori informazioni preziose sul ciclo di vita.
Che cosa sembra non funzionare correttamente? – yorkw
@yorkw Ho aggiornato la domanda, grazie per il commento. –
Cosa intendi quando dici "manualmente?" –