1

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

区别在于:

在 iPhone 4 上:

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

在 iPhone 3G 上:

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

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

还是我必须自己处理?

4

3 回答 3

2

给你一个更冗长的解释:

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

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

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

于 2011-06-19T12:29:22.727 回答
2

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

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

于 2011-06-19T12:22:18.573 回答
1

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

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

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

于 2011-06-19T12:21:04.917 回答