所有,
我们的应用程序主要由我们的内部员工使用,我们拥有自己的企业许可证,而不是通过苹果商店。我们希望该应用程序能够始终记录驾驶GPS,从上午9:00到下午5:00,即使我们的应用程序未运行,当然也得到了用户的许可。
因此,当我们的应用程序在前面或后台运行时,收集GPS数据没有问题。但是,有时当ipad进入睡眠状态并且我们的应用程序被杀死时,无论如何要求系统唤醒我们的应用并更新gps更新,如果有重大的gps更改?或者,当我们的应用启动时,将这些更新推迟到我们的应用如果有可能,它是否需要我们通过应用程序商店而不是使用企业许可证(这是我们之前听到的)?
感谢。
答案 0 :(得分:0)
我不确切知道您的要求,但在这种应用中,电池耗尽可能是个大问题。
要回答您的问题,可以让您的应用在后台运行并仍然记录位置数据。您应该做的唯一事情就是激活后台位置更新。
这个技巧也适用于企业计划。如果精确数据不是您所需要的,您只需激活- (void)startMonitoringSignificantLocationChanges
激活该方法,设备将以较低的精度记录较少的数据,但电池持续时间的好处是巨大的。
Apple写的一个写得很好的用例有一个look
[UPDATE]
以下是Apple关于重大位置变化的说法
如果您让重要更改位置服务正在运行并且您正在运行 iOS应用程序随后被暂停或终止,该服务 新位置数据到达时自动唤醒您的应用。在 唤醒时间,应用程序被放入后台,你得到一个 少量时间(约10秒)手动重启位置 服务和处理位置数据。 (您必须手动重启 在任何待定位置之前的后台位置服务 可以提供更新,如“了解何时开始”中所述 位置服务。“)因为你的应用程序在后台,它必须这样做 最小化的工作,避免任何任务(如查询网络) 可能会阻止它在分配的时间到期之前返回。如果 它没有,你的应用程序将被终止。如果iOS应用需要更多 处理位置数据的时间,它可以请求更多的背景 执行时间使用 beginBackgroundTaskWithName:expirationHandler:方法 UIApplication类。