【问题标题】:is there no need to save state for the IOS 4.0 multitasking support scenario?IOS 4.0多任务支持场景不需要保存状态吗?
【发布时间】:2011-03-15 21:26:43
【问题描述】:

我对何时需要为 iPhone 应用程序保存状态感到有些困惑。特别是对于一个人的 Iphone IOS 版本支持多任务处理的情况,当你回到它时,它似乎处于相同的状态(无论如何对于我的简单应用程序)。

问题 - 您能否阐明“需要为 iPhone 应用保存状态”和多任务支持如何协同工作。

希望回复可以帮助澄清以下方面:

  1. 对于多任务支持场景(当用户没有明确终止应用程序时),是否需要保存状态?还是 IOS 会为你做这件事(它似乎是为我的简单应用做的)。

  2. 如果对 1 的回答为“是”,那么您真正需要在什么时候保存状态?

  3. 如果对 1 的回答是否定的,那么当 IOS 确实让您的应用程序在后台“运行”时,您会丢失哪些数据/状态而不丢失哪些数据/状态?

谢谢

【问题讨论】:

  • 保存状态尽可能

标签: iphone ios ios4 multitasking


【解决方案1】:

1A。是的。因为……

1B。你不知道。操作系统通常会在较新的设备上保存状态,但这并不能保证,也不会总是发生。在旧设备上,操作系统不会保存状态。

2A。即使答案为 1B。是的,操作系统仍然可以删除您的应用程序的状态以节省内存。因此,您仍然需要保存任何您不希望在应用暂停后可能丢失的状态。

3A。如果您的应用不检查恢复时的时钟,您的应用可能会丢失时间(来自 NSTimer 滴答等)。

【讨论】:

    【解决方案2】:

    要支持多任务处理,您只需针对 4.0 或更高版本进行编译。

    您应该将应用程序数据保存到文件中,但 IOS 会将您的所有视图和视图控制器保留在内存中,并在应用程序切换回时从中断处恢复。

    请记住,当您的应用程序处于后台时,IOS 可以随时完全终止它以尝试回收内存,因此请确保您的用户数据是持久的。

    【讨论】:

    • 由于 iOS 可以在后台将您的应用程序从内存中弹出,因此从不保存状态意味着 有时 它会恢复到按下主页按钮时的状态,有时会恢复惯于。这可能会令人困惑。最好在您的应用进入后台时保存状态。
    【解决方案3】:

    通常使用多任务处理,应用程序会继续运行,无需显式保存应用程序的状态。但是,如果手机内存不足,它很可能会决定在后台模式下转储您的应用程序。

    对于没有后台模式的手机(例如 3G),您总是需要保存状态。

    最重要的是,您需要在进入后台时保存状态,以防应用程序稍后从内存中删除。您只需在重新启动时重新阅读它,而不是在从后台返回时。

    至于需要保存“什么状态”,这实际上取决于您的特定应用程序。也许选择的选项卡或导航?很大程度上取决于用户对不丢失任何工作的期望。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 2014-09-07
      • 2015-12-10
      • 2011-03-24
      • 2015-06-23
      • 2019-12-19
      相关资源
      最近更新 更多