gpt4 book ai didi

ios - 即使在 CLLocationManager 上明确调用 stopUpdatingLocation 后,状态栏上的位置服务指示器仍然出现

转载 作者:可可西里 更新时间:2023-11-01 04:44:35 25 4
gpt4 key购买 nike

我有一个 View 有一个 map View 的 subview 。我使用 CLLocationManager 获取当前位置并显示在 map 上。然后当 View 即将关闭时,我执行以下操作

_mapView.delegate = nil;
_mapView = nil;

[_locationManager stopUpdatingLocation];
_locationManager.delegate = nil;
_locationManager = nil;

但是状态栏上的位置服务(GPS)指示器仍然存在,没有消失。当应用程序进入后台然后返回前台时,它会等待指示器显示在状态栏上,然后再激活。

指标还存在的原因是什么?

编辑 - 以下是 CLLocationManager 的初始化和启动方式

    if (_locationManager == nil) {
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
_locationManager.distanceFilter = kCLDistanceFilterNone;

[_locationManager startUpdatingLocation];
}

下面是我如何阻止它的

    if (_locationManager != nil) {
[_locationManager stopUpdatingLocation];
_locationManager.delegate = nil;
_locationManager = nil;
}

最佳答案

正如位置工程师在 WWDC 上解释的那样,该图标会在右上角保留一段特定的时间,具体取决于上次使用的服务。我相信一旦您停止使用位置 [locationManager stopUpdatingLocation],计时器就会在图标消失之前开始计时。某些服务的时间更长。他们没有详细说明这些计时器的时长。我知道它们在 iOS 6 中会变长。

一旦您停止监控位置,只需等待(30-60 秒),然后查看图标是否消失。它应该假设你已经停止了一切。希望这会有所帮助。

关于ios - 即使在 CLLocationManager 上明确调用 stopUpdatingLocation 后,状态栏上的位置服务指示器仍然出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11021212/

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