我正在为企业部署编写一个 iOS 应用程序。用例是它打算在 iPad 上以 kiosk / 引导访问模式在前台运行,并且只要操作系统正在运行,它就永远不会关闭(iPad 将安装在墙上并插入电源资源)。
我已经将 iPad 设置为永远不会进入锁定屏幕,并且我已经输入了必要的 IdleTimerDisable 代码。我设置了引导访问来运行该应用程序,然后关闭它。
白天,一切都像魅力一样。我可以让 iPad 整天坐在那里,应用程序在前台,它的行为完全符合预期。然而,一夜之间,某些事情导致应用程序关闭,当我早上上班时,iPad 正坐在主屏幕上。
我在控制台打开的情况下将 iPad 连接到我的 Mac,但检查日志和控制台输出并没有发现任何异常。
我也有异常处理和日志记录代码,但是查看这些日志显示也没有抛出异常。
行为是一致的:我可以让应用程序整天打开而不会出现问题,但到第二天早上它就关闭了。有时我可以在引导访问运行的情况下重新启动应用程序,有时我在主屏幕上被引导访问困住,阻止我重新启动应用程序,我不得不强制 iPad 重新启动。
问题:iOS 是否会在一夜之间执行某种清理,导致应用程序像这样退出,还是有其他解释?
如果操作系统正在关闭应用程序,我该如何解决?
相关信息:我在 Xamarin 中开发了该应用程序。只要应用程序处于打开状态,应用程序就会通过后台线程不断地轮询 REST API。此外,该应用程序当前所在的 iPad 没有越狱,但如果我需要解决这个问题,我可以越狱它。