IOS:如何恢复应用程序状态

时间:2016-09-05 17:23:13

标签: ios state restore

我正在尝试实现保存和恢复应用程序状态。我收集到了 app delegate shouldSaveApplicationState:中的方法保存状态并为视图控制器提供恢复ID, 当应用程序返回活动状态时,application:shouldRestoreApplicationState:会将您带回到您所在的视图控制器。

然而,如果我故意使用主页按钮关闭应用程序 - 例如,打个电话或在野生动物园检查一些东西 - 当我回到应用程序时,一瞬间显示我去过的地方但然后从初始视图控制器重新启动。

这对用户来说是不和谐的,因为用户需要回到他/她所处的所有麻烦,这绝对是次优的。

当我将application:shouldRestoreApplicationState:设置为在触发时注销时,看起来在这种情况下它不会被触发 - 显然是设计为question个状态。

有没有办法强制调用此方法以检索我的状态?或者,如果您主动离开应用程序而不是被中断(例如来电),您如何回到应用程序中的位置?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

这对我来说是一个错误。在按下主页按钮后,方法application:shouldRestoreApplicationState:未在简历上触发的原因是appDelegate文件中名为applicationDidBecomeActive:(UIApplication *)application的方法在生命周期的早期触发,并将应用程序重定向到启动页面。我通过将生成周期中的恢复方法之后的applicationDidBecomeActive中的麻烦重定向移动到applicationDidFInishLaunching来解决此问题。这允许shouldRestoreApplicationState触发。

值得注意的是,按下主页按钮不是强制退出,这是恢复方法触发的一个例外。