【问题标题】:iBeacon entry.exit callback when app is force killed by swipe up iOSiBeacon entry.exit 回调当应用程序被向上滑动iOS时强制终止
【发布时间】:2016-10-20 08:33:02
【问题描述】:

我在很多地方读到,如果用户向上滑动并杀死一个应用程序,该应用程序将无法接收位置更新。当我的应用程序没有被杀死并且在后台时,我收到了 didEnterRegion 和 didExitRegion 回调。但是如果我刷杀应用程序,应用程序不会得到那些回调。我的问题是,

  1. 该应用程序是否会停止接收回调?即,即使应用再次启动并处于后台,它也不会收到回调
  2. 我读到了 startMonitoringSignificantLocationChanges 和后台应用程序刷新一起使用时,即使应用程序被滑动杀死,我也可以获得回调。我试过了,但无法正常工作。这是预期的行为吗?
  3. startMonitoringSignificantLocationChanges 和后台应用在使用时会一起刷新吗,我在重启设备后得到区域进入/退出回调?

【问题讨论】:

    标签: background location ibeacon


    【解决方案1】:

    这不是预期的行为。即使在任务切换器中杀死应用程序后,您也应该得到 didEnterRegiondidExitRegion 回调。如果您没有看到这一点,则您的应用程序或测试方法可能有问题。发布代码可能会有所帮助。

    一些注意事项和提示:

    • 确保您的应用已获得locationManager.requestAlwaysAuthorization() 的后台权限。没有它,它根本无法在后台检测到。

    • 在终止状态下的检测在 iOS 7.0.x 上不起作用。它从 7.1+ 开始工作。

    • 确保等待足够长的时间以获取检测结果。在某些应用状态下,最长可能需要 15 分钟。

    • 在测试中终止您的应用之前,请检查日志以确保您知道 CoreLocation 认为您当前的区域状态是什么。如果您关闭信标然后杀死您的应用程序,CoreLocation 可能没有时间意识到信标消失了,认为它仍然在该区域内。如果您随后打开信标,您将不会收到新的进入事件,因为它认为您已经在里面了。

    【讨论】:

    • 验证了上述几点。这些都没有问题,但我只有在向上滑动和杀死的情况下才会收到背景通知。如果应用程序在后台和设备重启,我会收到通知。
    • 对于 ZHr 对stackoverflow.com/questions/18946881/… 的评论,你怎么看
    • 您能否确认是否需要 startMonitoringSignificantLocationChanges 和应用后台刷新才能获得 didEntry/exit 回调?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2014-09-11
    • 1970-01-01
    相关资源
    最近更新 更多