如何检测引起applicationWillResignActive的原因?(注:该内容涉及IT技术)

9
我有一个视频聊天应用程序,我想在设备锁定时断开呼叫,但在接收到短信、日历、低电量或任何其他类型的通知时保持连接。问题是,我无法弄清楚是什么导致我的应用程序委托的applicationWillResignActive选择器被调用。
我考虑过实现一种超时机制,如果在一定时间内未调用applicationDidBecomeActive,则会断开连接,但这错误地假定用户将在那段时间内忽略或接受接收到的通知。
是否有人能帮助我找出一种确定导致applicationWillResignActive选择器被调用的方法?
非常感谢, Mason

你是否查看了这里所有的UIApplication状态变化?http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UIApplicationDelegate - Luke
@Luke,是的,我看过了。我还阅读了这个下面的_响应中断_部分,但没有找到任何有用的解决方法来解决我的问题。 - jmason
@Luke 当我在applicationWillResignActive中检查UIApplicationState时,当前状态为UIApplicationStateActive - jmason
我倾向于James的帖子中提出的观点 - 如果您可以在设备锁定时断开通话,并且对于所有其他运行时中断,只需让其继续运行...我希望UIApplication涵盖的状态足够。关于applicationDidBecomeActive没有在一段时间内被调用的您自己的观点...您可以编写一些设置代码,在应用程序第一次运行时从用户获取超时值 - 不确定它如何与Apple协调。 - Luke
2个回答

5

2
实际上,您无法确定是什么导致了辞职呼叫,但我已经为我的情况找到了解决方法。当设备被锁定时,AVFoundation停止向代理发送捕获的帧。因此,在进行视频通话时,当我在willResign被调用后停止接收新帧时,我知道设备已被锁定。感谢詹姆斯,您真的很棒。 - jmason

0
在我的情况下,我是在NSNotification.Name.UIApplicationWillResignActive上停止视频捕获的。
现在,我正在使用: NSNotification.Name.UIApplicationDidEnterBackground 当有消息到来或有人呼叫捕获设备时,它不会被触发。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接