从我的应用程序,我需要创建一个新的活动到一个外部应用程序,以检索结果在OnActivityResult。它与StartActivityForResult工作得很好,然后OnActivityResult是引发后,externalActivity完成处理...所以调用者代码已经完成...
因此,我想调用viewModel中的父方法,该方法在异步/等待上下文中执行StartActivityForResult代码,以使业务代码线性化,而无需在OnActivityResult中使用回调...
实际
public class MyViewModel
{
public async OnCallExternalIntent()
{
androidService.CreateExternalIntent() => this method calls inside StartActivityForResult then running thread is leaving and StartActivityForResult is raised. It's working....
}
}
字符串
但我想在等待上下文中执行方法CreateExternalIntent,以检索类似的StartActivityForResult
public class MyViewModel
{
public async OnCallExternalIntent()
{
var otherActivityResult = await androidService.CreateExternalIntent();
}
}
public class MainActivity : MainApplication
{
public Task CreateNewActivity()
{
StartActivityForResult(planeteMonetiqueIntent, transaction.InteropMessageId);
AutoResetEvent.WaitOne();
return Task.FromResult(_otherActivityResult);
}
}
protected override void OnActivityResult(int requestCode, Result resultCode, Android.Content.Intent intent)
{
Bundle bundle = intent.Extras;
_otherActivityResult = GetDataFromBundle();
AutoResetEvent.Set();
}
型
我做了这个过程,以同步与USB设备检索Arduino过程和我的调用程序代码是工作良好,等待.
我看过这个主题Synchronous startActivityForResult - Waiting for Activity to Complete
我无法使用检测检测= new检测();检测.AddMonitor(planeteMonetiqueIntentFilter,null,false);
启动活动同步(planeteMonetiqueIntent);
此代码引发错误,无法在主线程中执行此代码....
我不想把我的问题解释得尽可能简单...
谢谢
Julien
1条答案
按热度按时间xdnvmnnf1#
在视图模型级别使用autoREsetEvent,它正在工作