我读过 this和许多其他问题。我了解到无法安排任务在特定时间从后台运行。
我的应用程序使用 CLVisit
api 将位置信息发送到服务器。但我希望用户能够选择一个时间范围来发送他/她的签到。 stopMonitoringVisits()
和 startMonitoringVisits()
在特定时间从后台有什么不同的方法吗?我的应用是否应该在收到 didVisit
调用后始终监控并决定发送位置?
同样的问题可以问 startMonitoringSignificantLocationChanges()
最佳答案
只要访问监控确实满足您的应用程序的需求,请始终保持监控并在处理 didVisit 回调时决定适当的处理(是否应向服务器报告位置)。
您不会以这种方式对电池造成任何明显的压力,因为访问跟踪对电池非常友好,而且无论有没有您的应用,iOS 都会默认运行这种监控。
此外,任何试图采用一些旨在规避供应商推荐甚至 API 设计强制执行的“聪明”技巧的“聪明”技巧,都不可避免地会导致“不良做法”,在您的情况下,这很可能会带来额外的后果电池消耗。
始终保持监控的唯一不利影响是状态栏中的实线箭头,许多“受过教育”的 iPhone 用户将其视为高电池使用率的标志。如果这是主要问题,并且如果您的用例涉及相当多的时间跨度(例如,离开办公室和家庭位置),您可以尝试使用静默推送通知在适当的时间激活监控。
关于ios - 如何在特定时间段运行CLLocationManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37212370/