如何在 iOS 应用程序中防止传入 phone 呼叫的干扰
How to prevent disturbance from incoming phone call in iOS app
我有一个 iOS 具有下载功能的应用程序。它将文件下载到一个临时文件夹,然后将其移动到一个特殊文件夹。但是这个过程可能会被传入的 phone 呼叫打扰。当应用程序在后台运行了足够长的时间后,下载过程就消失了,这可能是由于系统终止了该应用程序。我想知道是否有解决它的好策略。我能想到的一种解决方案是检测传入的 phone 调用并在应用程序再次启动时恢复下载。
你有什么建议吗?谢谢!
这将是最好的方法。您可以收听 AVAudioSessionInterruptionNotification 。
您可以获得如下中断类型::
NSDictionary *interruptionDict = notification.userInfo;
NSInteger interruptionType = [[interuptionDict valueForKey:AVAudioSessionInterruptionTypeKey] integerValue];
根据中断类型是否为kAudioSessionBeginInterruption
或者kAudioSessionEndInterruption,你可以做你想做的。
您可以使用 background transfer service 中介绍的 iOS 7 下载。即使您的应用程序被推送到后台并且下载需要很长时间,这也允许下载继续。
如果需要,您还可以 pause/resume 使用来自 OS 的可能事件进行下载。
我有一个 iOS 具有下载功能的应用程序。它将文件下载到一个临时文件夹,然后将其移动到一个特殊文件夹。但是这个过程可能会被传入的 phone 呼叫打扰。当应用程序在后台运行了足够长的时间后,下载过程就消失了,这可能是由于系统终止了该应用程序。我想知道是否有解决它的好策略。我能想到的一种解决方案是检测传入的 phone 调用并在应用程序再次启动时恢复下载。 你有什么建议吗?谢谢!
这将是最好的方法。您可以收听 AVAudioSessionInterruptionNotification 。 您可以获得如下中断类型::
NSDictionary *interruptionDict = notification.userInfo;
NSInteger interruptionType = [[interuptionDict valueForKey:AVAudioSessionInterruptionTypeKey] integerValue];
根据中断类型是否为kAudioSessionBeginInterruption 或者kAudioSessionEndInterruption,你可以做你想做的。
您可以使用 background transfer service 中介绍的 iOS 7 下载。即使您的应用程序被推送到后台并且下载需要很长时间,这也允许下载继续。
如果需要,您还可以 pause/resume 使用来自 OS 的可能事件进行下载。