【问题标题】:How to check Location Manager is running or not in iOS?如何检查位置管理器是否在 iOS 中运行?
【发布时间】:2014-01-29 08:50:47
【问题描述】:

我正在创建基于位置的应用程序,我正在实现 CLLocationManager 的委托方法,

我知道有两种方法来启动和停止定位方法是:

[locationManger startUpdatingLocation];
[locationManger stopUpdatingLocation];

但我想检查位置管理器是否已经在运行?有没有类似的方法,

isLocationManagerRunning

如果 locationmanager 没有运行,我必须启动它。

我不想将 BOOL 放在委托方法中进行检查。

【问题讨论】:

    标签: ios iphone objective-c core-location cllocationmanager


    【解决方案1】:

    您无需检查它是否正在运行,如果您不确定,只需致电您的位置管理器上的startUpdatingLocation。

    如果它没有运行,它将启动,如果它正在运行,它不会产生重新启动它的开销。正如documentation 所说:

    连续多次调用此方法不会自动生成新事件。但是,在这两者之间调用 stopUpdatingLocation 确实会导致在您下次调用此方法时发送一个新的初始事件。

    【讨论】:

    • 哦,感谢 Abizerm,感谢文档。现在我不用担心盯着位置管理器了
    • 如果我想让用户选择停止位置管理器(如果它正在运行)怎么办。最好的方法是什么?
    • @osrl 我无法告诉您让您的用户选择在应用中启用位置服务的最佳方式 - 这实际上取决于您的应用和设计。
    • 当然是。但我想知道是否有办法知道位置管理器是否正在运行。你的回答说没有。也许另一种方式,比如将状态写入 UserDefaults 可能会有所帮助。还是谢谢。
    • @osrl 看看这个文档页面上是否有任何可以帮助你的东西developer.apple.com/documentation/corelocation/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 2012-07-22
    相关资源
    最近更新 更多