如何安排在没有用户干预的情况下唤醒 iOS 应用程序的警报

How to schedule an alert which wakes up iOS app without user intervention

我的目标:在我的音乐播放器中实现休眠功能。如果用户选择 30 分钟的睡眠时间,那么应用程序应该唤醒并停止当前播放的音乐。

问题:一旦phone被锁定,[self performSelector:@selector (onTimer_sleep) withObject:nil afterDelay:sleepIntervalInSeconds];就无法工作;

我的尝试:使用UILocalNotification。但是,只有当应用程序在系统发送通知时最重要且可见时,这才有效。

您会为我的用例推荐什么?我应该实施后台模式吗?你建议哪种背景模式,"Background fetch"?

简答:你不能。 Apple 严格限制允许 运行 在后台运行的应用程序。

如果您的应用是支持后台播放的音乐播放应用,那么您已经准备就绪。这是允许 运行 在后台运行超过几分钟的一小部分应用程序之一。当您的应用程序正在播放音乐时,您仍应获得背景时间。

如您所见,只有当用户点击本地通知,或者应用程序 运行 在前台运行时,才会发送本地通知。

您可以设置一个服务器来发送静默推送通知,但这需要网络连接,而且推送通知的时间不能非常精确。