Pra*_*ant 9 iphone objective-c interrupt-handling
通过使用applicationWillResignActive和applicationDidBecomeActive,我可以检测到iPhone进入睡眠状态并从睡眠中恢复过来.但是我如何找出它是什么样的中断.我正在制作音频播放器应用程序,并且需要在iPhone进入睡眠状态时保持音频播放(我知道该怎么做).但是当发生消息,警报或电池电量不足中断时,我需要中断音频.此外,我需要在事件结束后恢复音频.
那么我如何区分这些不同的中断.
您的应用可能无法获得该信息,但这里有一些可以尝试的事情.
在applicationWillResignActive:
,检查NSNotification的对象和userInfo属性,看看是否有任何提示.
注册以接收发布到默认通知中心的所有通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveNotification:) name:nil object:nil];
Run Code Online (Sandbox Code Playgroud)发布任何内容时都会调用您的方法.记录通知对象和userInfo字典,您可能会看到发布的有用通知.如果你找到一个,你可以注册.
所有上述方法都依赖于未记录的行为,并且可能会使您的提交被App Store拒绝.它们都不涉及私有方法调用,但您可能会认为观察未记录的通知名称会被视为私有API.最终,Apple的意见是唯一重要的意见.
就个人而言,我会尝试一下,确保在系统发生变化时代码优雅地失败.
归档时间: |
|
查看次数: |
2573 次 |
最近记录: |