如何防止应用程序进入睡眠状态,以便为音乐集成睡眠模式

Fre*_*icP 1 timer background-process ios swift sleep-mode

我有一个用Swift编写的工作音乐应用程序.我想整合睡眠模式,可以暂停播放的音乐,例如10分钟.我用perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)这个任务,它工作得很好.

但是有一个问题.iPhone很有可能在10分钟结束前进入睡眠状态,因此不会调用暂停功能,音乐会继续播放.

我知道还有其他方法可以在10分钟后发送一个动作(NSTimer,使用GCD)但是如果我理解,这些解决方案都不会阻止机器进入睡眠状态,或者唤醒应用程序来执行任务.

也许我可以使用后台模式,但是:

  1. 我的目标不是真正解决这种模式应该解决的问题.我不想有时间完成,我只想在某个时间使用1/10的第二个处理器.
  2. 此选项不保证在10分钟内工作.

这是实现我需要的方式吗?

小智 9

你可以这样做:UIApplication.shared.isIdleTimerDisabled = true,因为这是Swift 3中的唯一方法,你可以UIApplication.sharedApplication().idleTimerDisabled = true在Swift 2或[UIApplication sharedApplication].idleTimerDisabled = YES;objective-c中完成