让计时器在后台iOS上运行超过3分钟

时间:2016-01-18 19:03:26

标签: ios background nstimer

所以我需要这个应用程序运行计时器超过3分钟,播放声音大约45秒,这里的大多数解决方案在iOS上只有不到3分钟。有没有办法让它一直运行,除非应用程序停止?

经过研究,我猜解决方案是实施beginBackgroundTaskWithExpirationHandler

并通过提供handler并在plist设置位置更新来停止它?

至于音频,除了设置plist之外,还需要做些什么来播放音频?

Swift how to use NSTimer background? iphone - NSTimers in background Run app for more than 10 minutes in background

1 个答案:

答案 0 :(得分:1)

不,为了让我们所有人免受杀死我们电池的应用程序的限制,Apple不允许应用程序在后台继续运行超过几分钟。只有非常特殊的限制(音乐播放应用程序,VOIP,导航应用程序等)允许持续操作。在详细信息方面,适用于iOS的应用程序编程指南的Background Execution章节对此进行了描述。

如果您希望在将来某个时间通知用户,您可以使用本地通知。但是,当您执行此操作时,您无法控制应用程序是否重新启动。只有当用户点击通知时(假设他们甚至完全授予了您的应用通知权限),才会重新打开该应用。有关更多信息,请参阅Local and Remote Notification Programming Guide中的本地通知讨论。但请注意,这不是每45秒一次的警报,而是针对未来某个时间安排的重要通知。

有关如何将本地通知与计时器结合的讨论,请参阅swift NSTimer in Background以及此后续问题swift calculate time for timers running in background