我正在使用mvvm架构开发Xamarin.iOS应用。问题是,如果我尝试在主要ViewModel类的Initialize方法中运行 await Task.Delay(2000),则该应用程序将在LaunchScreen上停止,而不会出现任何错误消息。 没有这一行,该应用程序将完美运行。
MainViewModel.cs
public override async Task Initialize()
{
await Task.Delay(2000);
}
任何想法我在做什么错吗?
编辑: 在我调用 awaitNavigationService.Navigate()
之后,MVVMCross会调用Initializepublic class CustomAppStart : MvxAppStart
{
public CustomAppStart(IMvxApplication application, IMvxNavigationService navigationService) : base(application, navigationService)
{
}
protected override async Task NavigateToFirstViewModel(object hint = null)
{
await NavigationService.Navigate<MainViewModel>();
}
}
根据文档,我应该可以安全地使用await:MvvmCross ViewModel Lifecycle
答案 0 :(得分:0)
正如@kistelekig指出的那样,他能够通过将任务延迟放置在视图模型的ViewAppearing
生命周期函数中来解决该问题。看起来像这样
public override async Task ViewAppearing()
{
base.ViewAppearing()
await Task.Delay(2000);
...
}