我有一个应用程序,我正在启动一个新的活动,并且需要在继续之前获得活动的结果。同步startActivityForResult - 等待活动完成
我意识到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;
}
回调:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
//Pull out the data
mIsActivityDone = true;
}
的数据需要恢复到一个更高的层次调用函数 - 这就是为什么我需要等待结果的ActivityLauncher功能。
谢谢!
同意,只需将“//处理数据的继续”移动到'onActivityResult()'方法中。如果你需要这样做几次,那也没关系:这就是为什么startActivityForResult()需要一个'int requestCode'参数,它返回到'onActivityResult()',所以你知道哪个请求正在返回。 – Joe 2011-06-15 00:20:27
谢谢,我感谢架构的帮助。 – 2011-06-15 00:51:22