Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS上的后台提取中初始化MvvmCross_Ios_Xamarin_Xamarin.ios_Mvvmcross - Fatal编程技术网

在iOS上的后台提取中初始化MvvmCross

在iOS上的后台提取中初始化MvvmCross,ios,xamarin,xamarin.ios,mvvmcross,Ios,Xamarin,Xamarin.ios,Mvvmcross,我正在开发一个可以获取远程后台获取的应用程序(又称为静默通知) 我所做的是用Mvx解析服务。解析是通过网络进行抓取的。当应用程序启动并放在后台时,它工作正常——但由于它不能保证它会留在那里(内存不足或人们强制关闭所有后台应用程序),因此MvvmCross不再初始化,我需要在应用程序被唤醒时初始化它 但我当时似乎不能只运行Setup()和Setup.Initialize(),因为Setup构造函数需要一个UIWindow(在后台启动时,witch将为null),而解析null将引发异常 我知道An

我正在开发一个可以获取远程后台获取的应用程序(又称为静默通知)

我所做的是用Mvx解析服务。解析是通过网络进行抓取的。当应用程序启动并放在后台时,它工作正常——但由于它不能保证它会留在那里(内存不足或人们强制关闭所有后台应用程序),因此MvvmCross不再初始化,我需要在应用程序被唤醒时初始化它

但我当时似乎不能只运行Setup()和Setup.Initialize(),因为Setup构造函数需要一个UIWindow(在后台启动时,witch将为null),而解析null将引发异常

我知道Android有一个singleton类,可以确保MvvmCross可用,如下所示:

var setupSingleton = MvxAndroidSetupSingleton.EnsureSingletonAvailable(this);
setupSingleton.EnsureInitialized();
但在iOS平台上,我似乎找不到类似的东西。 Setup类有一个方法EnsureInitialized(),但这仍然需要我遍历Setup构造函数,它需要一个UIWindow,如前所述

有人能告诉我怎么做吗? 一种解决方案是手动初始化所需的服务。但这似乎是一个糟糕的解决方案,因为有些服务可能需要通过MvvmCross Ioc加载其他服务


谢谢

您不能将MvxSetup实例保存在AppDelegate中吗?在后台抓取中不是可以访问吗?如果内存不足,或者用户强制退出应用程序,应用程序将被挂起,应用程序中的所有状态都将消失。当应用程序在后台被操作系统唤醒时,它将像正常情况一样启动,只是它不会获得UIWindow,因此无法使用Setup类初始化MvvmCross(因为它取决于要构造的UIWindow)。我可以让你在GitHub上创建一个问题吗?请记录,未来的人们会寻找这个: