我有一个用Swift编写的有效音乐应用程序。
我想整合睡眠模式,可以暂停播放的音乐,例如10分钟。
我使用perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
执行此任务,它运行正常。
但是存在问题。 iPhone会在10分钟结束前进入睡眠状态,因此暂停功能未被调用,音乐继续播放。
我知道还有其他方法可以在10分钟后发送一个动作(NSTimer,使用GCD)但是如果我明白,这些解决方案都不会阻止机器进入睡眠状态,或者唤醒应用程序执行任务
也许我可以使用background mode,但是:
这是实现我需要的方式吗?
答案 0 :(得分:9)
你可以这样做:UIApplication.shared.isIdleTimerDisabled = true
,因为这是Swift 3中的唯一方法,你可以在Swift 2中UIApplication.sharedApplication().idleTimerDisabled = true
或在objective-c中[UIApplication sharedApplication].idleTimerDisabled = YES;