我有一个在后台运行的应用程序,在iOS 8、9、10和11上没有问题。然而,它在iOS 12.1的后台停止运行( 180秒后就被杀死)。
我注意到一些应用程序仍然正常工作,如Skype、Facebook、Viber等,我注意到苹果现在发布了iOS 12.2。
有人知道这些应用程序是如何在后台运行的吗?
发布于 2019-04-15 06:48:23
如果您的应用程序在180秒后被关闭,这是因为当您的应用程序进入后台时,您的应用程序要求系统继续运行一段时间。
此请求使用[UIApplication beginBackgroundTaskWithName]:https://developer.apple.com/documentation/uikit/uiapplication/1623051-beginbackgroundtaskwithname?language=objc完成。
如文件所述,
此方法为您的应用程序请求额外的后台执行时间。
这个额外的时间是180秒(我认为比iOS 12更接近30秒)。
如果需要在后台运行,则必须在应用程序的Xcode功能中声明background mode:

这就是您列出的应用程序在后台工作的方式(本质上是Voice over IP模式)。
https://stackoverflow.com/questions/55682495
复制相似问题