转到后台后恢复应用程序

时间:2011-06-19 12:15:26

标签: ios background resume

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

区别在于:

iPhone 4上的

  1. 我运行我的应用程序,我正常玩。
  2. 我点击了iphone主页按钮,因此该应用程序转到后台
  3. 当我重新使用我的应用程序时,它会从上次执行上下文继续。
  4. iPhone 3G上的

    1. 我运行我的应用程序,我正常玩。
    2. 我点击iphone主页按钮,所以应用程序转到后台?!
    3. 当我重新使用我的应用程序时,它会从第一次启动时重新启动。
    4. 这些是在所有Iphone设备上具有相同行为的方法吗?

      或者我必须自己处理这个问题吗?

3 个答案:

答案 0 :(得分:2)

iOS4增加了运行到应用程序的后台,而不是在iPhone 3G上。对于这些情况,您需要手动存储和恢复状态。

您可以使用一些类来帮助您完成此操作 - 例如Github上的DTResurrectionKit

答案 1 :(得分:2)

给你一些冗长的解释:

在iOS 4.0中,Apple推出了背景应用程序。使用Background,失去前景的应用程序会被暂停,但可以重新激活到它们所在的同一点,而开发人员不必为此做任何事情。基本上,将保存Applications VM并重新创建相同的上下文。但是,后台应用程序可能会在后台运行时随时被杀死。

然而,苹果公司在这张图片中留下了几个较旧的设备,即使它们有4.0。 iPhone 3G和iPod Touch 2. Generation没有启用后台应用程序。

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

答案 2 :(得分:1)

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

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

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