【问题标题】:Continue location updates after iOS device is rebootediOS 设备重启后继续位置更新
【发布时间】:2014-03-05 00:21:38
【问题描述】:

在 iOS7 中,请求持续位置更新(不是符号更改/区域监控)的应用会在重启后重新启动吗?

当我重新启动手机时,应用程序会暂停,然后终止。当我重新启动手机时,应用程序会一直处于终止状态,直到我手动启动它。

我尝试添加具有最短刷新间隔的后台提取以重新启动应用程序,但也从未调用过。

apple doc 中解释说,如果我启用重大位置更改,它将从终止状态启动我的应用程序,但没有提及任何关于持续位置更新的内容。

关于如何让我的应用在重新启动后继续接收更新有什么建议吗?

【问题讨论】:

    标签: ios iphone objective-c cllocationmanager


    【解决方案1】:

    我认为这是不可能的,因为如果您的应用在后台启动,这将毫无用处,因为必须在您的应用处于前台时进行位置更新初始请求的监控。

    如果在应用程序处于后台时发出此请求,则它不起作用。您必须以某种方式将您的应用程序置于前台,以便您可以再次开始获取更新的过程。

    您可以临时添加重要的位置更改作为实验,以便唤醒您的应用,然后查看您的应用启动到后台状态后是否可以获得位置更新,但我 99% 确定您不会成功。

    【讨论】:

      【解决方案2】:

      我已经测试了好几个月,在应用程序终止/暂停后,iOS 重新启动应用程序以获取新位置更新的唯一可能方法是使用 locationManager 方法 startMonitoringSignificantLocationChanges。如果您使用startUpdatingLocation,iOS 将不会为您重新启动应用程序,因此应用程序无法获取位置更新。

      如果您想详细了解在后台获取位置更新与在应用被终止/终止/暂停时获取位置更新之间的区别,请参阅:-

      A) 应用在后台获取位置更新,请看:Background Location Services not working in iOS 7

      B) 应用暂停/终止时获取位置更新,请参阅:How to Get Location Updates for iOS 7 and 8 Even when the App is Suspended

      我写了 2 篇很长的文章来解释这 2 个场景之间的区别。上述 2 个场景的源代码也可以在 GitHub 上找到。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-11
        • 1970-01-01
        • 2016-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多