当我的应用程序处于活动状态时,我该如何处理来电?我的申请会终止或暂停吗?
答案 0 :(得分:6)
你好年轻的冒险家。您决定占用iPhone开发人员的生命将考验您,但奖励可能很大。对于你的问题的答案,我将需要你为我执行一系列任务。第一个任务是清除我的地下室从鼠害。您可以在酒吧后面的窗帘后面找到通往地下室的门。如果你看到任何狗头人,你也可以杀死它们。当你有八只老鼠的尾巴回来看我的奖励。
要回答您的问题,这取决于您尝试做什么,但简而言之applicationWillResignActive
会在有来电时调用,然后您的应用会被禁用。如果用户选择接听电话,则会调用willApplicationTerminate
。有关详细信息,请仔细查看Responding to Interruptions Guide
简而言之,如果你的应用程序是一款游戏,那么暂时暂停它是明智的,所以在applicationWillResignActive
执行此操作以满足不太重要的需求,willApplicationTerminate
是您在关闭之前保存状态的地方。< / p>
答案 1 :(得分:0)
我相信应用程序会在收到来电时终止,但会在通话结束后重新启动。 (虽然我在这一点上可能会弄错,并且在通话结束后应用程序可能会再次变为“非活动”和“活动”。我没有100%检查过这个。)
如果应用程序终止,您需要在应用程序委托类中响应applicationWillTerminate
委托方法。
如果应用仅变为无效状态,则您需要回复应用代理中的application[Did/Will]BecomeInactive
和application[Did/Will]BecomeActive
方法。
答案 2 :(得分:0)
接到电话后,系统会调用您的app delegate的applicationWillResignActive:方法并显示接收来电的选项,这是至少在iOS4之前的标准行为,但之后我们有3种可能的结果:
1)用户忽略了呼叫:
- &GT;然后它被称为app delegate的applicationWillBecomeActive:方法。
2)用户决定接听电话(直到iOS 3.x):
- &GT;您的app delegate的applicationWillTerminate:被调用,您应该保存所有需要的数据,免费使用的内存和所有这些东西。
3)用户决定接听电话(iOS 4):
- &GT;应用程序委托的applicationDidEnterBackground:方法被调用,你也应该对此进行处理,但它并不像applicationWillTerminate那样糟糕,只要确保保存合理的数据并尽可能多地释放内存。
我知道已经有一段时间了,但我也不得不寻找这个,而且我正在尽可能地回答那些从现在开始可能最终需要的人:)
更详细地阅读本文的一个好地方是苹果公司自己的应用程序编程指南:http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/CoreApplication/CoreApplication.html#//apple_ref/doc/uid/TP40007072-CH3-SW9