我的目标:在我的音乐播放器中实现睡眠功能。如果用户选择说30分钟的睡眠时间,则应用程序应该唤醒并停止当前播放的音乐。
问题: [self performSelector:@selector (onTimer_sleep) withObject:nil afterDelay:sleepIntervalInSeconds];
在手机锁定后无效;
我的尝试:使用UILocalNotification
。但是,只有在系统发送通知时应用程序位于最前面并且可见时才会起作用。
您对我的用例有什么建议?我应该实施后台模式吗?你会建议哪种bg模式,"背景提取"?
答案 0 :(得分:2)
简短的回答:你做不到。 Apple严格限制允许在后台运行的应用程序。
如果您的应用是支持从后台播放的音乐播放应用,那么您已经完成了设置。这是允许在后台运行超过几分钟的小应用程序列表之一。在您的应用中播放音乐时,您仍应获得背景时间。
正如您所发现的那样,只有当用户点击它们或者应用程序在前台运行时,才会传递本地通知。
您可以将服务器设置为发送静默推送通知,但这需要网络连接,推送通知无法准确计时。