我不完全了解Apple的iOS 4模型,我一直在阅读文档数小时,但我仍然感谢一些帮助。
背景式iPhone应用程序是否已退出?例如,当我关闭位置跟踪应用程序(例如Loopt)时,它将被后台化但是它是否会订阅操作系统的重要位置服务?根据苹果(如果我理解正确),即使它被暂停或关闭,它将被通知我当前的位置。这是否意味着,只要它在我的手机上,它总是会知道我的位置?或者直到我重新启动手机?
谢谢,
答案 0 :(得分:14)
必须专门编写应用程序才能利用多任务处理功能。他们不只是免费获得它。
当用户通过按主屏幕“退出”应用程序时,如果它可以快速切换,则会暂停。它的状态已保存,并且已发送到后台,但它不会运行。
如果编写应用程序以便利用位置,voip或音频的后台处理,那么只有某些方面将继续在后台运行。 例如。如果一个voip应用程序被暂停,它将告诉操作系统它想要保持它的网络套接字存活,并在来电到达这些套接字时得到通知。 当发生这种情况时,应用程序“被唤醒”并从操作系统中恢复对套接字的控制并恢复正常播放。
如果呼叫已在进行中,并且用户关闭了应用程序,则应用程序再次通知操作系统保持套接字处于活动状态并继续处理音频但应用程序的其余部分(UI,任何其他功能) )暂停,不要跑。
如果iOS4上的应用程序没有针对4.0 SDK进行编译(因此不能识别多任务处理),或者如果在应用程序的info.plist文件中指定了UIApplicationExitsOnSuspend
密钥并设置为true,则会退出。
如果系统开始耗尽资源,操作系统会根据需要杀死应用程序。
最后,用户可以通过双击主页按钮,按住其中一个暂停的应用程序图标,然后按下角落上显示的“关闭”按钮来终止应用程序。