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

时间:2017-04-17 12:27:31

标签: ios swift timer background-process sleep-mode

我有一个用Swift编写的有效音乐应用程序。 我想整合睡眠模式,可以暂停播放的音乐,例如10分钟。 我使用perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)执行此任务,它运行正常。

但是存在问题。 iPhone会在10分钟结束前进入睡眠状态,因此暂停功能未被调用,音乐继续播放。

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

也许我可以使用background mode,但是:

  1. 我的目标并非在于这种模式应该解决的问题。我不想有时间完成,我只想在某个时间使用1/10的第二个处理器。
  2. 此选项不保证工作10分钟。
  3. 这是实现我需要的方式吗?

1 个答案:

答案 0 :(得分:9)

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