Tengo una aplicación en la que estoy iniciando una nueva actividad y necesito obtener el resultado de la actividad antes de continuar.StartActivityForResult sincrónico - Esperando que se complete la actividad
Me doy cuenta de que startActivityForResult es asíncrono/no-bloqueante, y que puedo obtener el resultado de la actividad en la devolución de llamada onActivityResult.
Así que supongo que lo que estoy buscando es la mejor manera de esperar a que la actividad regrese ... ¿Algo como esto quizás? ¿O hay un mejor camino? Función
Actividad Launcher:
public String ActivityLauncher()
{
//Set up Intent
startActivityForResult(intent, 1);
while (mIsActivityDone == false)
{
Thread.Sleep(250);
}
//Continue with processing
String data = "<Data from Activity">
return data;
}
de devolución de llamada:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
//Pull out the data
mIsActivityDone = true;
}
los datos tienen que ser devueltos a una función de llamada de alto nivel - esto es por lo que necesito esperar el resultado de la ActivityLauncher función.
Gracias!
De acuerdo, simplemente mueva "// Continuar con el procesamiento de datos" en el método 'onActivityResult()'. Si necesita hacerlo varias veces, también está bien: es por eso que startActivityForResult() toma un argumento 'int requestCode', que se vuelve a pasar a' onActivityResult() ', para que sepa qué solicitud está devolviendo. – Joe
Gracias, aprecio la ayuda de arquitectura. –