CLLocationManager禁用监视后台的重大更改

时间:2012-12-14 14:59:09

标签: iphone ios cllocationmanager

我正在使用背景地理位置来在用户位于特定位置时安排本地通知。

由于这些通知链接到商业操作,我有一个日期,存储在userdefaults中以管理何时应该在操作是其他操作时禁用背景地理位置。

我不希望用户必须启动应用程序才能禁用重要的更改监控。

所以我尝试stopMonitoringSignificantLocationChanges CLLocationManager直接locationManager:didUpdateToLocation:fromLocation:,但它没有接合工作。

有什么建议吗?这个问题的最佳做法是什么?

感谢。

1 个答案:

答案 0 :(得分:0)

考虑到背景应用程序或未运行的应用程序的道路规则,您的双手在这里有所束缚。

如果您想在没有用户互动的情况下禁用位置,这是您唯一的选择。

每次您的用户位置从后台更新时,您的位置管理员代表都会收到此更新。你没有在这里获得很多处理能力,所以保持简短和甜蜜或注册长时间运行的后台任务,检查你的日期,如果你完成了位置,在那里调用停止监控调用,重置任何数据或标志在您的用户默认值中,您就完成了。

如果您从本地通知触发,则用户需要单击打开按钮才能执行任何操作。您可以确保从后台位置委托方法触发通知。但这是您在没有用户交互的情况下实现自动化的唯一途径。你在那里做什么取决于你。检查位置udpates并将其从后台委托方法中关闭是没有问题的。