【问题标题】:Should iOS Significant Location Change wake up my app after restarting a *locked* phone?iOS 重大位置更改是否应该在重启*锁定*手机后唤醒我的应用程序?
【发布时间】:2013-04-14 04:00:47
【问题描述】:

我正在构建一个使用重大变更 API 的应用。除了非常特殊的情况外,一切正常:

如果用户的手机被锁定,并且用户重启了手机,那么重要的位置变化API会在最初的几分钟内唤醒手机并调用

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

一切顺利,但此时,如果用户尚未解锁手机,重大位置更改将不再尝试唤醒应用,即使我随后解锁了手机。从本质上讲,重大位置变化监控被关闭。

请注意,如果我在 SLC 唤醒我的应用程序之前解锁(并重新锁定)手机,那么它将继续唤醒我的应用程序以及任何后续位置更改。

我的问题是:这真的是预期的行为吗?任何人都可以向我指出有关 SLC API 在手机被锁定时的行为的文档,特别是在手机被锁定并重新启动设备时?

【问题讨论】:

    标签: iphone ios core-location


    【解决方案1】:

    我遇到了同样的问题(iOS8.1.1 / iPhone 5)-

    我在我的应用中成功地使用了重要的位置变化监控。

    场景 1) 手机启动后,如果我立即解锁手机,我的应用会使用 didFinishLaunchingWithOptions 中的 UIApplicationLaunchOptionsLocationKey 重新启动。

    场景 2) 但是,如果我在开机后等待 > 3 分钟解锁手机,应用 不重新启动。如果我带着手机去散步,我的应用程序不会重新启动。

    在查看手机调试输出时,我注意到 life360 和 facebook 都 请在场景 2 中开始重大的位置更改。

    【讨论】:

    • 那么有什么区别呢?当应用程序在 Seneario 2 中启动时,我们缺少什么来捕捉这些位置更新?如果 Life360 和 FB 能做到,那我们应该也能做到。
    • 嗨@greddy,我可能正在经历类似的事情——你们中的任何一个人都明白了吗?谢谢
    【解决方案2】:

    应用确实会在位置发生重大变化时在后台启动。我刚刚去测试了一下。

    当位置发生重大变化时,我会发送一个本地推送通知,该通知会在位置发生重大变化后出现,即使手机被锁定

    我还没有测试 10 分钟后会发生什么,设备被锁定,并且位置发生了重大变化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多