ios - 如何在特定时间段运行CLLocationManager

标签 ios core-location cllocationmanager background-process

我读过 this和许多其他问题。我了解到无法安排任务在特定时间从后台运行。

我的应用程序使用 CLVisit api 将位置信息发送到服务器。但我希望用户能够选择一个时间范围来发送他/她的签到stopMonitoringVisits()startMonitoringVisits() 在特定时间从后台有什么不同的方法吗?我的应用是否应该在收到 didVisit 调用后始终监控并决定发送位置?

同样的问题可以问 startMonitoringSignificantLocationChanges()

最佳答案

只要访问监控确实满足您的应用程序的需求,请始终保持监控并在处理 didVisit 回调时决定适当的处理(是否应向服务器报告位置)。

您不会以这种方式对电池造成任何明显的压力,因为访问跟踪对电池非常友好,而且无论有没有您的应用,iOS 都会默认运行这种监控。

此外,任何试图采用一些旨在规避供应商推荐甚至 API 设计强制执行的“聪明”技巧的“聪明”技巧,都不可避免地会导致“不良做法”,在您的情况下,这很可能会带来额外的后果电池消耗。

始终保持监控的唯一不利影响是状态栏中的实线箭头,许多“受过教育”的 iPhone 用户将其视为高电池使用率的标志。如果这是主要问题,并且如果您的用例涉及相当多的时间跨度(例如,离开办公室和家庭位置),您可以尝试使用静默推送通知在适当的时间激活监控。

关于ios - 如何在特定时间段运行CLLocationManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37212370/

相关文章:

ios - 如何删除节中的 TableView 行

ios - 核心定位精度

ios - 地址/邮政编码作为 NSString 到 CLLocation

应用程序在后台启动位置监控时,iOS 位置更新不频繁

ios - 使用 NSAttributedString 添加后如何从 UITextView 检索照片?

ios - Swift:如何将 wilDisplayCell 分配给特定的自定义寄存器单元?

ios - Prefix.pch ReactiveCocoa/RACEXTScope.h 文件未找到错误

iPhone核心位置: distance filter how does it work?

ios - 位置更新的时间间隔更短

swift - 我的主视图 Controller 是通过观察何时发布通知并被多次调用来加载的