ios – 应用程序从后台唤醒时重新启动

G’day iOS Guru’s,

我已经广泛搜索了一个答案,但找不到答案(我打赌我的问题的第一个回答将是另一个类似的问题,但我找不到).

无论如何,我的问题是我正在运行一个简单的地图应用程序,用户可以在地图上放置引脚,并在丢弃的引脚周围放置一个自定义的圆形覆盖.

当应用程序进入后台(iphone锁定或按下主页按钮)时,如果我在约5分钟内重新进入应用程序,则引脚仍在那里,应用程序将重新打开到最后一个屏幕.

都好.

但是,如果我将应用程序留在后台超过5分钟,应用程序将重新启动并且所有引脚都将丢失.

我在plist中有“应用程序不在后台运行= NO”,并且在所需的后台模式下启用了“应用寄存器以进行位置更新”.

如何阻止应用在进入后台并加载上次打开的视图后重新启动?

最佳答案 如果需要额外的资源来执行前台正在进行的操作,iOS可以并且将会在后台终止您的应用.

您需要确保在应用程序终止时保存/存档您的数据,并在重新启动时解压缩以便返回用户最后的位置.执行此操作的传统方法是使用applicationDidEnterBackground方法,该方法在应用程序挂起时调用.然后,您可以保存所需的所有数据,以便在以后终止您的应用程序时干净利落地恢复.

但是,如果您的目标是iOS 6及更高版本,则可以利用新功能 – State Presumption & Restoration (link to documentation).状态恢复将部分(但不是全部)重负荷卸载到iOS上,并且可以自动对UI进行快照并提供更轻松的功能保存和恢复数据的方法.

点赞