gpt4 book ai didi

iOS startMonitoringForRegion 在 sleep 模式下不起作用(黑屏)

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

我正在尝试使用 startMonitoringForRegion 在 iOS 中为 iPhone 4 编写一个应用程序,每次位置委托(delegate)收到位置更新时都会触发本地通知。

只要手机处于唤醒状态(屏幕亮起),应用程序运行良好,会触发通知,但是当我将手机置于 sleep 状态(屏幕为黑色)时,我不再收到通知,直到我醒来按主页按钮启动电话

我试图在 info.plist 中添加“必需的背景模式”-“应用程序注册位置更新”键,但这没有任何意义......

CLLocationManager 委托(delegate)设置为 AppDelegate。

即使设备处于 sleep 状态,我需要做什么才能注册位置更新?提前致谢。

最佳答案

可能是CLLocationManager实例在应用关闭后被释放

对我来说,我会创建一个具有 CLLocationManager 属性的位置管理器的单例,并将委托(delegate)设置为单例。之后,我将调用方法 startMonitoringSignificantLocationChanges 以确保应用程序接收到位置更新。即使应用程序被终止,它也会工作。

对于应用被终止的情况,我需要在应用委托(delegate) didFinishLaunchingWithOptions 方法中实例化位置管理器单例:

if ([launchOptions objectForKey:UIApplicationLaunchOptionsLocationKey]) {
//instantiate the singleton here
NSArray *regions = [[[[LocationManager sharedManager] locationManager] monitoredRegions] allObjects];
}

我在这里详细解释了使用显着位置更改和标准位置服务之间的区别:location based push notification when app is not running?

关于iOS startMonitoringForRegion 在 sleep 模式下不起作用(黑屏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10397280/

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