同步startActivityForResult - 等待活动完成

J J*_*J J 7 android asynchronous wait android-intent android-activity

我有一个应用程序,我正在启动一个新的Activity,并需要在继续之前获得活动的结果.

我意识到startActivityForResult是异步/非阻塞的,我可以在onActivityResult回调中获得活动的结果.

所以我想我正在寻找的是等待活动返回的最佳方式......也许这样的事情?或者,还有更好的方法?

活动启动器功能:

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;
}
Run Code Online (Sandbox Code Playgroud)

打回来:

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
   //Pull out the data
   mIsActivityDone = true;
}
Run Code Online (Sandbox Code Playgroud)

数据需要返回到更高级别的调用函数 - 这就是我需要等待ActivityLauncher函数中的结果的原因.

谢谢!

Ale*_*man 8

这将阻止您的UI线程,因此其他活动也不会执行.我会使用更高级别函数提供的某种回调类,在这种情况下调用它的回调函数onActivityResult