在重新启动设备时阻止应用程序关闭

时间:2012-07-27 15:38:06

标签: iphone ios ipad

当我重新启动设备时,我的应用程序已启用它将无法保留其再次打开应用程序时的状态,这将是我第一次打开,丢失会话并重新登录,即使通过设备重启,如何让我的应用保持其状态?比如推特,例如。

1 个答案:

答案 0 :(得分:3)

我会根据您在上面添加的评论尝试更正式的答案。我首先要说的是the link Tim发布的内容是你应该熟悉的内容。

当您的应用运行时,它处于Foreground状态。当您使用“主页”按钮“退出”应用程序时,您并没有真正放弃它;你只是把它推到了背景状态。在后台状态几秒钟后,操作系统会自动将应用程序移动到Suspended状态。如果你在几分钟内回来,你的应用程序仍然在内存中,所以操作系统只是将它放回到屏幕上。

但是,如果您单独离开应用程序一段时间并使用其他应用程序,操作系统可以随时在没有警告的情况下从内存中清除您的应用程序。这称为“未运行”状态。现在,当再次打开应用程序时,它必须从头开始。显然,当设备重新启动时会发生同样的事情 - 所有应用程序都从内存中清除。

然后,诀窍是在进入后台状态时保存有关应用程序状态的基本信息。您可以使用app delegate的didEnterBackground方法,或注册UIApplicationDidEnterBackgroundNotification并在您的活动视图控制器(或任何其他类)中调用方法。无论哪种方式,您都应该保存任何状态信息。

如何保存这些信息?有几种策略。对于一个简单的应用程序,也许您可​​以将一些设置注册为NSUserDefaults。或者也许您可以写出包含用户正在处理的任何数据的文件。这完全取决于你。

然后,每当应用程序启动时,检查是否存在已保存的数据(但是您选择将其写出),并相应地设置UI。对于用户来说,似乎应用程序永远不会退出,这正是Apple希望他们思考的内容。