如果后台应用程序无法自动启动,Cardcase如何在某个位置启动?

Cardcase应用程序可让您知道您是否与前一个关系相关的商店(如果您已设置付款标签等)。

如果后台运行的应用程序无法在设备启动时自动启动,该应用程序如何工作?

编辑使我的问题更清晰:我不问如何监视位置更改或如何监视位置更改在后台。 我的问题是,如果用户安装这个应用程序,然后添加一些标签的一些位置,然后他们重新启动他们的iPhone,然后这个应用程序如何随后通知他们,如果应用程序启动时不支持的位置,

这个应用程序(以及任何其他应用程序)是否必须依赖于在每次重新启动设备后用户明确地启动它?

你可以用区域监控来做到这一点。 您可以在CLLocationManager上注册要使用此方法监视的区域:

- (void)startMonitoringForRegion:(CLRegion *)region desiredAccuracy:(CLLocationAccuracy)accuracy

然后,即使您的应用程序没有运行,它将在用户进入或离开区域时在后台启动。

从苹果的文档 :

如果您开始监控某个地区,并且您的应用程序随后被终止,则系统会自动将其重新启动为背景,如果区域边界超出范围。 在这种情况下,传递给应用程序委托的应用程序:didFinishLaunchingWithOptions:方法的选项字典包含UIApplicationLaunchOptionsLocationKey键,以表示由于位置相关事件而启动了您的应用程序。 另外,创build一个新的位置pipe理器并分配一个委托会导致相应的区域消息的传送。

编辑

只是用我自己的应用程序进行testing。 在离开办公室之前重新启动了我的手机,并像往常一样在家中开车。 所以是的,这肯定能够重新启动。

希望有所帮助。

这适用于地理防护应用程序(使用startMonitoringForRegion的应用程序)。

我的猜测是,当你使用这个类来安装应用程序时,负责任的iOS框架会自动为iOS内部的应用程序后台服务启动注册一个launchd脚本。

当然,这一切都是自动完成的,因为你不能很好地控制iOS的启动服务,除非你越狱了。

您可以在您的应用程序上使用startMonitoringForRegion,越狱您的设备,并检查launchd检查如何工作。