你真的想知道每个h我们的?你是否试图准确地确定位置,或者只是确定手机是否显着移动? startMonitoringSignificantLocationChanges
会在手机“显着”移动(通常意味着更换手机信号塔)时通知您。在城市中,这可能会经常发生。 startMonitoringForRegion:desiredAccuracy:
只会在您移出给定半径范围时才会通知您。
startMonitoringSignificantLocationChanges
是相当便宜。它主要依靠小区天线,无论如何它一般都是。如果它每小时发射一次以上,你总是可以跳过处理并返回。但是不能保证你每小时会被叫一次,特别是在农村地区。
如果你是一个VoIP应用程序,那么当你运行代码时,你可能会注册一个周期性的“签入”间隔。但是你不能为位置应用程序执行此操作。
您是否使用能量诊断仪器分析了您的代码?实际上吃什么是时间和力量?你在咀嚼收音机,CPU,磁盘吗?
编辑
当应用程序死亡发生重大变化仍然继续运行,并留下一个小的方向箭头图标旁边的百分比iPhone的顶部工具栏上。我的用户抱怨图标在杀了应用程序后仍然存在
在应用程序死亡后,如果您注册了重大更改,您将希望重新启动以响应它们。如果您想终止注销,请将stopMonitoring...
添加到您的applicationWillTerminate:
方法中。这不能保证被调用,但是这是一件好事,我相信如果用户直接终止你并且你没有被暂停(没有测试过),它会被调用。
此外,只要存在小区覆盖范围,重要的位置变化在电池寿命方面应该非常便宜。他们不应该强制GPS继续。
谢谢你的回答。这正是我现在正在做的以及我不想做的事情:)电池太多。 – Gena
那么..如果你正在使用显着的位置变化,那么没有更好的方法来提高电池寿命... – Saurabh