iphone - 使用 startMonitoringSignificantLocationChanges 和 desiredAccuracy 的电池
Posted
技术标签:
【中文标题】iphone - 使用 startMonitoringSignificantLocationChanges 和 desiredAccuracy 的电池【英文标题】:iphone - Battery using startMonitoringSignificantLocationChanges and desiredAccuracy 【发布时间】:2012-03-31 11:54:24 【问题描述】:我正在开发一个在后台运行的本地化应用程序。
我正在使用startMonitoringSignificantLocationChanges
获取用户的位置更新。
我知道这种方法只使用信号塔来确定用户位置,但它可以节省电池,即使它不是很准确。
我想知道,这种方法与desiredAccuracy
或distanceFilter
结合会产生什么效果?
它仍然会不准确且对电池友好吗?
或者它实际上会使用 GPS 并耗尽电池?
谢谢
【问题讨论】:
【参考方案1】:我的建议是使用两个 CCLocationManager 和委托方法
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
startMonitoringSignificantLocationChanges
的第一个,[locationManager startUpdatingLocation]
的第二个。这就是我的意思:您的主要startMonitoringSignificantLocationChanges
和不时您选择的方法调用第二个locationManager
和[locationManager startUpdatingLocation]
,当您获得第一个GPS 位置坐标时,您调用[locationManager stopUpdatingLocation]
。这种方法是节能的,你会收到一些desiredAccuracy
GPS 坐标。只需从女巫locationManager
的到来以及何时启动和停止 GPS 中处理一些个人逻辑即可。
希望你能理解我的逻辑,否则我会写一些代码。现在我不在我的 Mac 上。
【讨论】:
【参考方案2】:documentation for startMonitoringSignificantLocationChanges
声明:
它不依赖 distanceFilter 属性中的值来生成事件。
据我所知,现在有办法告诉位置管理器将desiredAccuracy
用于startMonitoringSignificantLocationChanges
,从而降低了这种方法的节能特性,可用于在后台“运行”的应用程序.
【讨论】:
以上是关于iphone - 使用 startMonitoringSignificantLocationChanges 和 desiredAccuracy 的电池的主要内容,如果未能解决你的问题,请参考以下文章
iPhone:如何使用 AVAudioPlayer 检测 Iphone/Ipod 音量级别
更新为 iPhone 5 制作的 XIB 以与 iPhone 6 和 iPhone 6 Plus 一起使用
Iphone - 不推荐使用的功能......他们会让iphone崩溃吗?