你好 iOS 大师,
我广泛搜索了答案,但找不到(我敢打赌对我的问题的第一个回答将是另一个类似的问题,但我找不到)。
无论如何,我的问题是我正在运行一个简单的 map 应用程序,用户可以在 map 上放置图钉,并在放置的图钉周围覆盖一个自定义的圆圈。
当应用程序进入后台(iphone 锁定或按下主页按钮)时,如果我在大约 5 分钟内重新进入应用程序,pin 仍然存在并且应用程序重新打开到最后一个屏幕。
一切顺利。
但是,如果我将应用程序留在后台的时间超过 5 分钟,应用程序将重新启动并且所有引脚都将丢失。
我在 plist 中有“Application does not run in background = NO”,并且还在 Required background modes 下启用了“App registers for location updates”。
如何防止应用进入后台并加载上次打开的 View 后重启?
最佳答案
如果 iOS 需要额外的资源来执行前台发生的任何事情,iOS 可以并且将会在您的应用程序处于后台时终止它。
您需要确保在您的应用程序终止时保存/归档您的数据,并在重新启动时解压缩数据以返回到用户上次所在的位置。执行此操作的传统方法是使用 applicationDidEnterBackground
方法,该方法会在您的应用暂停时调用。然后,您可以保存所需的所有数据,以便在您的应用稍后终止时干净地恢复。
但是,如果您的目标是 iOS 6 及更高版本,则可以利用一项新功能 - State Presumption & Restoration (link to documentation) .状态恢复将一些(但不是全部)繁重的工作卸载到 iOS 上,它可以自动为您的 UI 快照并提供更简单的方法来保存和恢复数据。
关于ios - 从后台唤醒时应用重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16893185/