我正在尝试实现保存和恢复应用程序状态。我收集到
应用程序委托(delegate) shouldSaveApplicationState:
中的方法保存状态并为 View Controller 提供设置恢复 ID,
application:shouldRestoreApplicationState:
应该会在应用程序恢复事件状态时将您带回到您所在的 View Controller 。
但是,如果我故意使用主页按钮关闭应用程序——例如,调用电话或在 safari 上查看某些内容——当我返回应用程序时,它会在一瞬间显示我去过的地方但随后从初始 View Controller 重新启动。
这对用户来说是不和谐的,而且绝对不是最佳选择,因为用户需要不厌其烦地回到他/她所在的地方。
当我将 application:shouldRestoreApplicationState:
设置为在触发时注销时,在这种情况下它似乎没有被触发——显然是设计使然 question州。
有没有办法强制调用此方法以检索我的状态?或者,在您主动离开应用程序而不是让它被打断(例如,被来电)的情况下,您如何返回到您在应用程序中的位置?
感谢您的任何建议。
最佳答案
事实证明这是我的错误。方法 application:shouldRestoreApplicationState:
在按下主页按钮后没有在恢复时触发的原因是 appDelegate
文件中的一个方法称为 applicationDidBecomeActive:(UIApplication * )application
在生命周期的早期触发,并将应用程序重定向到启动页面。我通过将 applicationDidBecomeActive
中麻烦的重定向移动到生命周期中 restore 方法之后的 applicationDidFInishLaunching
来解决这个问题。这允许 shouldRestoreApplicationState
触发。
请注意,按下主页按钮并不是强制退出,而是触发 restore 方法的一个异常(exception)。
关于IOS:如何恢复应用程序状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39335237/