【问题标题】:iOS 5.1 CoreLocation, location service icon not disappearingiOS 5.1 CoreLocation,定位服务图标不消失
【发布时间】:2012-05-01 05:25:49
【问题描述】:

我正在我的应用中跟踪用户的位置,并在收到第一个位置更新时停止更新。这个想法是只获得一次用户位置的“快照”,而不是实际跟踪用户的移动。

但是在 iOS 5.1 设备和模拟器上,屏幕右上角的定位服务图标在跟踪开始后并没有消失。

在 iOS 5.0 上(只能在模拟器中测试),图标按预期出现和消失。

有人知道 iOS 5.1 中可能影响 CoreLocation 的任何错误吗?

我发现其他人报告了非常相似的情况,但是他说如果你在多任务栏中强行杀死应用程序,图标会被删除,我的图标仍然存在,即使应用程序根本没有运行也是如此。

另外(关闭应用程序后),如果我在设置中进入位置服务,我的应用程序会亮起紫色,我可以打开或关闭,切换顶部的位置图标没有问题。

看看这个人:http://bendodson.com/weblog/2012/03/14/ios-5-1-location-services-bug/

【问题讨论】:

  • 我知道这是一个老问题,但是您描述的这种行为正是您使用重大变更服务应该做的事情,但如果您使用标准服务则不是。你还记得你用的是哪个吗?
  • 是的,我使用 -startUpdatingLocation 没有监控重大变化,它不再这样做了。也许这是当时 iOS SDK 的问题,或者可能在 iOs 5.1.1 中已修复。问题出在模拟器和运行 iOS 5.1 的 iPad 上

标签: ios core-location cllocationmanager


【解决方案1】:

传统方法:
[locationManager stopUpdatingLocation];
是不足够的。您还必须添加:
[locationManager stopMonitoringSignificantLocationChanges];

这是this问题的重复。


【讨论】:

  • 感谢您的回答。我提出这个问题是因为我没有观察到 iOS 5.0 和 iOS 5.1 的相同行为,因此是 iOS 5.1 问题。这是 5.1 中的错误。
  • 这个答案对于 iOS v6.x 也是有效且必要的。
【解决方案2】:

我注意到它需要一段时间才能消失(大约 10 秒)。当视图消失时,您可能需要停止更新位置并将委托设置为 nil:

- (void)viewWillDisappear:(BOOL)animated
{
    if ([self isMovingFromParentViewController]) {
        // Popping the view
        NSLog(@"MyViewController isMovingFromParentViewController");
        [locationManager stopUpdatingLocation];
        [locationManager setDelegate:nil];
    }
    [super viewWillDisappear:animated];
}

注意:此代码仅适用于 iOS 5,并且仅在视图被关闭并返回父视图时触发。相应调整。

顺便说一句,但您不应依赖从位置管理器返回的第一个位置,除非您已经对其进行了新的测试。您可能会得到一个旧的缓存位置。

【讨论】:

  • 不幸的是,我正在这样做,并且我正在 NSLogging 回调,所以我确定它正在发生。
  • 它在那里停留超过10秒吗?
  • 它会永远留在那里 ;) 即使在我从多任务处理栏中杀死它之后 - 有趣的是我没有注册任何类型的后台定位服务
  • 我看到这种情况发生得太晚了。我不记得我是如何让它消失的,但我会说关闭(所有)位置服务,删除你的应用程序,重新启动手机,然后再试一次。
  • 有趣的是我可以理解设备变得混乱和缓存等等,但模拟器也在 iOS 5.1 中这样做
【解决方案3】:

这个想法是只获取一次用户位置的“快照”,而不是实际跟踪用户的移动。

也只是想获取快照。调用后

[locationManager stopUpdatingLocation];

在 iPhone4S - iOS 5.1.1 上,导航图标不会立即消失,而是会延迟大约 10 秒。此外,我有时会在调用 stopUpdatingLocation 后收到另一个位置更新。

为了禁用导航图标,无需将位置管理器的委托设置为 nil。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2017-11-02
    • 2014-11-22
    相关资源
    最近更新 更多