使用“标准”定位服务的后台iOS应用是否会在设备重启时重新启动?



我有一个iPhone应用程序,它使用标准的位置服务(而不是重大的变化)。我知道电池等问题,但我们需要持续的精度。

它一般工作良好。我们已经在plist文件中设置了位置背景模式,等等。

但是,当设备重新启动时,应用程序似乎没有重新启动。

搜索周围,我看到了一些奇怪的评论,表明虽然注册了重大更新的应用程序将在重启时重新启动(当收到更新时),但使用标准位置服务的应用程序可能不会。

然而,我找不到任何苹果文档清楚地说明了这一点(甚至是一个清晰的,最新的,第三方的声明)。有人对此有明确的答案吗?

如果标准位置更新在重启后没有重新启动应用程序,是否有解决方案-例如使用意义更新来引导标准更新?有人能举个例子吗?

我看到有人建议你可以注册VoIP,但我不想这样做,因为它不使用这些服务。

注册了重要位置更新的应用程序在系统重启时不会重新启动。但是,如果新的位置更新通过并且系统先前已经终止它们,则它们将重新启动。这实际上意味着,如果你的应用程序在后台被系统终止(为了节省内存等),它将在后台重新启动。

引用苹果的文档:

这是UIBackgroundMode VOIP密钥不同的使应用程序在系统重启后重新启动。

这是记录在苹果的应用程序编程指南,在"后台执行"部分(链接在这里)。这是一个相当冗长的文档,所以这里有两个你想要的:

在UIBackgroundModes键中包含voip值可以让系统知道它应该允许应用程序在后台运行,以管理其网络套接字。使用此密钥的应用程序也会在系统启动后立即在后台重新启动,以确保VoIP服务始终可用。

位置:

[UIBackgroundMode位置键]不排除系统挂起应用程序,但它确实告诉系统,当有新的位置数据要传递时,它应该唤醒应用程序

最新更新