iphone - 啥消耗更少的电池? StartmonitoringLocationsChanges 或 startmonitoringforregion?

Posted

技术标签:

【中文标题】iphone - 啥消耗更少的电池? StartmonitoringLocationsChanges 或 startmonitoringforregion?【英文标题】:iphone - What consumes less battery? StartmonitoringLocationsChanges or startmonitoringforregion?iphone - 什么消耗更少的电池? StartmonitoringLocationsChanges 或 startmonitoringforregion? 【发布时间】:2012-04-02 18:22:14 【问题描述】:

我希望您就哪种方法消耗更少的电池给我您的反馈。

我的应用程序将在后台运行,并会随着位置的变化而唤醒,所以我想使用消耗更少电池的方法。

关于它是哪一个的任何想法?

谢谢

【问题讨论】:

【参考方案1】:

这些选择都不会导致更多或更少的电池消耗。

为了让您的应用收到任何位置更新的通知,无论是区域更改还是重大位置更改,您都必须在应用的 Info.plist 文件中指定您需要 location-服务在后台。

位置服务实际上有两个相关的选择:location-servicesgps

为了不耗尽用户的电量,请选择位置服务。如果你说你的应用需要 gps 后台服务,你会耗尽电池,因为这会导致 GPS 硬件(假设它存在)被启用,而这就是电池耗尽的原因。当您指定 location-services 时,设备会使用蜂窝无线电(无论如何都打开,假设您有 iPhone)来精确定位位置。不如 gps 准确,但大多数应用不需要 GPS 准确度。 (如果你这样做了,那么当然可以使用 gps,但要知道对电池寿命的影响。)

我最近写了一个关于这个的测试应用程序(我上周写了here),我发现当我设置几个区域进行监控并指定位置时,没有明显的电池消耗-services 作为必需的后台服务。

【讨论】:

我是否必须在 info.plist 中设置应用程序应该使用位置服务?如果我不它会使用 GPS?,因为我还没有这样做,还有什么是更准确的“位置更改”或“区域更改”?顺便说一句,很棒的帖子! 澄清一下,您的应用程序的 Info.plist 中必须有 2 项内容:在“必需的后台模式”下,您必须说您的应用程序将注册位置更新,在“必需的设备功能”下,您应该放置位置服务。您可以将 gps 放在这里,但这会耗尽电池电量。后一种设置还有助于防止使用没有必要硬件(例如蜂窝天线)的设备的用户下载您的应用。 所以它不会提高应用程序的性能,对吧?它将触发相同数量的“didUpdateLocation”。另外,哪个更准确位置更改或区域更改?我没有太多的位置变化,所以我想切换到区域监控,你可以添加多少个区域?谢谢。 应用位置更新的频率取决于您需要 location-services 还是 gps;在这种情况下,我认为没有考虑 CLLocationManager 精度设置。 Location Changes 和 Region Changes 的用例是不同的,因此使用哪一个实际上取决于您的应用程序在做什么。受监控的区域是全球性的,因此您可以或应该一次监控的区域数量存在实际限制(未记录)。我会把它控制在一个很小的范围内,比如 10 个以下。“所需的设备功能”对性能没有影响,AFAIK。 如果它可以处理多达 60 个区域它可以为我工作。使用位置服务,除非应用程序移动超过 500 米,否则该应用程序不会检测到其位置的变化,我想知道使用地理围栏是否会在离开该区域后立即启动触发器,如果​​是这样,那么可以尝试一下。你知道吗?谢谢

以上是关于iphone - 啥消耗更少的电池? StartmonitoringLocationsChanges 或 startmonitoringforregion?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 的时间消耗--摘抄

添加视频背景视图的最佳做法是啥?

在 iPhone/iPad 中发送一个 http 请求的电池消耗是多少?

Android黑色主题与白色主题

哪个向量和地图,使用更少的内存(大量数据和未知大小)

iOS 上的标准定位服务电池消耗