当我需要为iPhone应用程序保存状态时,我有点困惑。特别是对于一个Iphone IOS版本支持多任务处理的场景,当你回到它时,它看起来确实处于相同的状态(无论如何我的简单应用程序)。
问题 - 您能否澄清“需要为iPhone应用程序保存状态”以及多任务处理支持如何协同工作。
希望响应可以帮助澄清诸如以下方面:
对于多任务支持方案(当用户没有明确终止应用程序时),是否有需要保存状态?或者IOS会为你做这件事(对于我的简单应用程序来说它似乎有用)。
如果对1的答案是肯定的,那么你真的需要在什么时候保存状态?
如果对1的答案为否,那么当IOS确保您的应用程序在后台运行时,您输入的确切数据/状态与非丢失的数据/状态是什么?
感谢
答案 0 :(得分:2)
支持多任务处理所需要做的就是编译4.0或更高版本。
您应该将应用程序数据保存到文件中,但IOS会将您的所有视图和视图控制器保留在内存中,并在应用程序切换回来时从中断处继续。
请注意,当您的应用在后台时,IOS可以随时完全终止它,以尝试重新声明内存,以确保您的用户数据保持不变。
答案 1 :(得分:2)
通常使用多任务处理,应用程序继续运行,不需要显式保存应用程序的状态。但是,如果手机的内存不足,它可能会决定在应用程序处于后台模式时转储它。
对于没有后台模式的手机(例如3G),您总是需要保存状态。
从底线开始,如果稍后将应用程序从内存中删除,您将需要在进入后台时保存状态。你只需要在重新启动时阅读它,而不是从后台回来。
就“需要保存什么状态”而言,它实际上取决于您的特定应用。也许是选中的标签或导航?很大程度上取决于用户对不丢失任何工作的期望。
答案 2 :(得分:2)
1A。是。因为...
1B。你不知道。操作系统通常会在较新的设备上保存状态,但这并不能保证,并且不会总是发生。在较旧的设备上,操作系统不会保存状态。
2A。即使答案为1B。是的,操作系统仍然可以删除应用程序的状态以节省内存。因此,在您的应用暂停后,您仍然需要保存任何您不希望丢失的状态。
3A。如果你的应用程序没有检查恢复时钟,你的应用可能会失去时间跟踪(来自NSTimer滴答等)。