gpt4 book ai didi

ios - CLLocationManager startMonitoringForRegion : not relaunching app after device restart

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:17:10 25 4
gpt4 key购买 nike

好的,所以我目前有一个应用程序,我在其中使用 CLLocationManager startMonitoringForRegion 方法注册要监视的地理围栏。当应用程序处于前台和后台时,这工作正常。

我还设置了适当的 plist 值:

UIBackgroundModes :{location}
UIRequiredDeviceCapabilities: {location-services}

什么不起作用

设备重启后,应用不会重新启动。如果我在进入后台之前设置 startMonitoringSignificantLocationChanges ,我可以强制发生这种情况。但是这种方法会消耗更多的电池生命周期,而且我不需要一直需要位置信息,只是在我打破地理围栏时才需要。

区域文档说:

在 iOS 中,您向位置管理器注册的区域在您的应用程序启动之间保持不变。如果在您的 iOS 应用程序未运行时发生区域交叉,系统会自动在后台唤醒它(或重新启动它),以便它可以处理该事件。重新启动时,您之前配置的所有区域都可以在您创建的任何位置管理器对象的 monitoredRegions 属性中使用。

问题

是否有可能(在使用地理围栏区域时)让系统在系统重启后重启我的应用程序,而不使用 startMonitoringSignificantLocationChanges

编辑:我的目标是 iOS6 和 iOS7

最佳答案

在这里回答我自己的问题。

虽然您确实需要使用 startMonitoringSignificantLocationChanges 让系统在设备重启后唤醒应用程序。如果用户强行关闭应用,则不会唤醒应用。

出于我的目的,我不需要将 UIBackgroundModes 设置为 location。此设置通常用于只需要细粒度位置更新的应用程序(例如使用 startUpdatingLocation)。使用 startMonitoringSignificantLocationChanges 时不需要设置后台模式。

关于ios - CLLocationManager startMonitoringForRegion : not relaunching app after device restart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20432971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com