【问题标题】:Resuming an App after going to background进入后台后恢复应用
【发布时间】:2011-06-19 12:15:26
【问题描述】:

我有一个针对 Iphone 3G、3GS 和 4G 的 iphone 应用程序。 我遇到的问题是行为与 Iphone 3G 和 4 不同(我没有机会在 3GS iphone 上测试我的应用程序)。

区别在于:

在 iPhone 4 上:

  1. 我运行我的应用程序,我玩得很正常。
  2. 我点击 iphone 主页按钮,所以应用程序进入后台
  3. 当我重新启动我的应用程序时,它会从上次执行上下文继续。

在 iPhone 3G 上:

  1. 我运行我的应用程序,我玩得很正常。
  2. 我点击 iphone 主页按钮,所以应用程序进入后台?!
  3. 当我重新启动我的应用程序时,它会从首次启动时重新启动。

这是一种在所有 Iphone 设备上都具有相同行为的方法吗?

还是我必须自己处理?

【问题讨论】:

    标签: ios background resume


    【解决方案1】:

    iOS4 为应用程序添加了后台运行,在 iPhone 3G 上没有。对于这些情况,您需要手动存储和恢复状态。

    您可以使用一些课程来帮助您解决此问题 - 例如 Github 上的 DTResurrectionKit

    【讨论】:

    • 错误。 iPhone 3G 没有后台应用程序。它总是会杀死应用程序
    【解决方案2】:

    给你一个更冗长的解释:

    在 iOS 4.0 中,Apple 引入了后台应用程序。使用后台,失去前台的应用程序会被暂停,但可以重新激活到它们所在的位置,而开发人员无需为此做任何事情。基本上,应用程序 VM 被保存并重新创建相同的上下文。但是,后台应用程序在后台运行时可能随时被终止。

    但是,Apple 将一些较旧的设备排除在外,即使它们获得了 4.0。 iPhone 3G 和 iPod Touch 2. Generation 没有启用后台应用程序。

    因此,如果您希望在所有设备上都具有相同或至少相似的行为,您将不得不自己动手。在 Appdelegate 的 ApplicationWillTerminate: 函数中,您必须存储您需要的当前位置/其他信息并从那里重新创建。

    【讨论】:

      【解决方案3】:

      我认为您在 iPhone 3G 上运气不佳,因为后台应用程序仅在运行 iOS 4.x 及更高版本的 iPhone 3GS 开始的设备上受支持。当然,当应用程序终止并在重新启动时恢复时,没有什么可以阻止您保存应用程序上下文。

      3G 支持的 iOS 4 功能的确认可在此处找到:

      http://support.apple.com/kb/HT4204

      【讨论】:

        猜你喜欢
        • 2015-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多