苹果的iOS 4开发人员文档很清楚地概述了这一点。
当你的应用程序关闭或切换离开时,它几乎立即“挂起”,这意味着操作系统冻结了应用程序的状态。当用户切换回您的应用程序时,您的代码将保持运行状态。你不需要需要添加任何代码到你的应用程序来做到这一点,只是编译它对操作系统4.
以上是在大多数情况下是正确的。 “暂停”模式可能不适用的原因有两个:
1)如果设备在内存中开始运行低电平,操作系统将开始终止暂时没有切换的暂停应用程序,而不发出警告。这就是为什么你的应用程序要记住它的状态对你最有利,所以如果你的应用程序被终止,然后重新打开,用户并没有真正注意,因为它仍然返回到他们离开的地方。
2)您的应用程序使用“背景”API之一。这些用于音频回放,VoIP服务或位置服务。在这种情况下,您的应用可以继续在后台运行,但只能访问这些API。此外,您的应用可以将某些长时间运行的任务指定为需要在应用暂停或终止之前完成的“后台任务”,例如将图片上传到Flickr或渲染视频等。
“后台任务”方法不会无限期地检测服务器,因为任务有时间限制,之后它将被强制中止。与以往一样,需要这种功能的应用程序需要实施推送通知。
这应该清除这一点。总而言之,我认为这是一个在移动设备上进行多任务处理的非常优雅的解决方案。
我有0 iOS的经验,所以这可能没有帮助。但是,为什么不在后台运行时做一些事情来查看它是否在运行(例如,每秒更新一次计数器)? – Cam 2010-06-09 05:22:37
好主意!我现在要尝试... – 2010-06-09 05:50:28
我只是设置了一个计时器来每秒开启并ping我的Web服务器。果然,当应用程序进入后台时,定时器停止了触发,即使它返回时它也会立即恢复到它暂停时的状态。 – 2010-06-09 06:51:41