我正在使用背景地理位置来在用户位于特定位置时安排本地通知。
由于这些通知链接到商业操作,我有一个日期,存储在userdefaults中以管理何时应该在操作是其他操作时禁用背景地理位置。
我不希望用户必须启动应用程序才能禁用重要的更改监控。
所以我尝试stopMonitoringSignificantLocationChanges
CLLocationManager
直接locationManager:didUpdateToLocation:fromLocation:
,但它没有接合工作。
有什么建议吗?这个问题的最佳做法是什么?
感谢。
答案 0 :(得分:0)
考虑到背景应用程序或未运行的应用程序的道路规则,您的双手在这里有所束缚。
如果您想在没有用户互动的情况下禁用位置,这是您唯一的选择。
每次您的用户位置从后台更新时,您的位置管理员代表都会收到此更新。你没有在这里获得很多处理能力,所以保持简短和甜蜜或注册长时间运行的后台任务,检查你的日期,如果你完成了位置,在那里调用停止监控调用,重置任何数据或标志在您的用户默认值中,您就完成了。
如果您从本地通知触发,则用户需要单击打开按钮才能执行任何操作。您可以确保从后台位置委托方法触发通知。但这是您在没有用户交互的情况下实现自动化的唯一途径。你在那里做什么取决于你。检查位置udpates并将其从后台委托方法中关闭是没有问题的。