【发布时间】:2018-01-25 18:57:29
【问题描述】:
使用 CLLocationManager
我正在定义区域并响应 didEnterRegion 和 didExitRegion。这很好用,因为当设备在区域之间移动时,我得到了 Enter 和 Exit 的回调。
问题是我在手机设备放在桌子上一动不动的情况下通宵运行了几次该应用程序。电话设备位于输入区域的中心。
在夜间,大约每小时一次,我得到一个 didExitRegion,然后在不到 15 秒内我得到一个 didEnterReqion。
我过滤这些幻像退出/进入对的解决方案是设置一个计时器,当我得到一个退出等待 15 秒,然后如果我在该计时器窗口内没有收到同一区域的 Enter,然后我处理退出.
如果应用程序在前台,这有效,但在后台失败。在后台模式下,我仍然会收到 didExitEvent,但我认为应用程序会在 15 秒窗口过去之前返回后台模式,我不会在手机返回前台模式之前触发该计时器。
我的区域半径是250M,精度模式是最近10米。我的设备虽然静止不动,但位于区域中心,但我仍然每小时得到一次这些幻像退出/进入对。
要么我需要找到一种方法来停止幻像退出/进入对,要么需要一种方法让计时器在应用返回后台模式之前保持完整的 15 秒运行。
有没有人有一个很好的解决方案来处理固定设备的随机退出/进入或进入/退出对?
还有,在后台模式下,定时器可以在应用唤醒事件时运行的最长时间是多少?
【问题讨论】:
-
请发布您的代码
标签: ios timer cllocationmanager