如何在iOS 12的后台运行iOS应用

时间:2019-04-15 04:09:00

标签: ios

我有一个可以在iOS 8、9、10和11上在后台运行的应用程序。但是,它停止在iOS 12.1上在后台运行(180秒后被杀死)。

我注意到某些应用仍然可以正常运行,例如Skype,Facebook,Viber等。 我注意到Apple现在发布了iOS 12.2。

有人知道这些应用程序如何在后台运行而没有任何问题吗?

1 个答案:

答案 0 :(得分:1)

如果您的应用在180秒后被杀死,那是因为您的应用在进入后台时要求系统继续运行一段时间。

此请求使用[UIApplication beginBackgroundTaskWithName]完成:https://developer.apple.com/documentation/uikit/uiapplication/1623051-beginbackgroundtaskwithname?language=objc

如文档中所述,

  

此方法为您的应用请求额外的后台执行时间。

这额外的时间是180秒(我认为这是自iOS 12以来的30秒)。

如果您需要使应用程序真正在后台运行,则必须在Xcode中声明应用程序功能中的background mode

enter image description here

这就是您列出的应用程序在后台(本质上是Voice over IP模式)下工作的方式。