iOS计时器在后台

Lau*_*s V 6 notifications background timer ios swift

我想在我的iOS应用程序中启动计时器,当应用程序在后台运行时以及应用程序关闭时.计时器必须每30分钟检查一次新的通知.在计时器功能中,他们每隔30分钟调用另一个函数showNotification().

我怎么做这个计时器,当应用程序没有在后台运行/运行时,我必须在哪个地方调用计时器.

Mar*_*sky 5

AFAIK在后台(生产中)180s之后无法运行NSTimer.

编辑:如果启用后台模式,则最多可以获得10分钟.你可以了解更多,例如.在这里.


Jan*_*ins 5

当应用程序不在前台时,不可能做到100%确定.您可以使用后台提取定期唤醒,但无法控制何时发生.

虽然有一些技术上的解决方法,甚至可能是一些hacky解决方案(在后台播放静音音频),但听起来我的问题可以在不使用定时器和后台获取的情况下解决.

只需实现远程通知.当您的iOS收到应用通知时,它会唤醒应用并让它处理一段时间.然后,您可以控制向用户显示的通知,并可能在后台加载一些数据.

从广义上讲,您需要:

  • 在您的应用启动时注册远程通知(通常在应用程序中:didFinishLaunching :)
  • 当您收到通知令牌时,将其发送到将向您发送通知的Web服务器(此令牌可能会更改,因此请务必在启动应用程序时将其发送到Web服务器)
  • 当新内容可用时,您的Web服务器可以使用该令牌将有效负载发送到您的应用程序(您选择的语言可能已经有一个库.例如,如果您使用Ruby,则有休斯顿)