I have an application where I am launching a new Activity, and need to have the result of the activity before proceeding.
I realize that startActivityForResult is asynchronous / non-blocking, and that I can get the result of the activity in the onActivityResult callback.
So I guess what I’m looking for is the best way to wait for the activity to return…
Something like this perhaps? Or is there a better way?
Activity Launcher Function:
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;
}
Callback:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
//Pull out the data
mIsActivityDone = true;
}
The data needs to be returned to a higher level calling function – this is why I need to wait for the result in the ActivityLauncher function.
Thanks!
This will block your UI thread so other activity will not execute either.
I would use some kind of callback class provided by higher level function, in this kind of situation and call its callback function in
onActivityResult