转到后台后恢复应用程序

问题描述 投票:1回答:3

我有一个针对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
3个回答
2
投票

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

有一些类可以帮助你解决这个问题 - 比如Github上的DTResurrectionKit


2
投票

为了给你一个更长的解释:

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

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

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


1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.