【发布时间】:2017-04-17 12:27:31
【问题描述】:
我有一个可用的音乐应用程序,用 Swift 编写。
我想集成一个睡眠模式,可以暂停播放的音乐,比如 10 分钟。
我使用perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval) 完成这项任务,效果很好。
但是有一个问题。 iPhone 很有可能会在 10 分钟结束前进入睡眠状态,因此不会调用暂停函数,音乐会继续播放。
我了解还有其他方法可以在 10 分钟后发送操作(NSTimer,使用 GCD),但如果我了解,这些解决方案都不会阻止机器进入睡眠状态或唤醒应用程序以执行任务.
也许我可以使用background mode,但是:
- 我的目标并不是这种模式应该解决的问题。我不想有一些时间来完成,我只想要在某个时间点 1/10 秒的处理器。
- 此选项不保证工作 10 分钟。
这是实现我需要的方法吗?
【问题讨论】:
-
您可以使用
UIApplication.shared.isIdleTimerDisabled = true阻止设备进入睡眠状态,但这可能会将婴儿与洗澡水一起扔出去。
标签: ios swift timer background-process sleep-mode