【问题标题】:How can we get updated location after app is terminated?应用程序终止后我们如何获得更新的位置?
【发布时间】:2018-01-22 13:39:57
【问题描述】:

我们用过

significantLocationChange(https://developer.apple.com/documentation/corelocation/getting_the_user_s_location/using_the_significant_change_location_service)

用于更新位置,但它有时会更新位置,所以它 没有始终如一地提供位置更新。

当应用程序运行时,经常更新位置的最佳方式是什么? 在终止阶段(不在前台/不在后台)

【问题讨论】:

  • 这是一个老问题,我建议你研究一下后台任务应用程序被杀死。你会找到方法的。我已经为此实施了一个解决方案,但由于合规性而无法发布我的代码。

标签: ios core-location cllocationmanager


【解决方案1】:

您必须为您的应用启用位置更新的后台模式。您可以通过选择您的项目 -> 功能 -> 背景模式并启用位置更新来做到这一点。

【讨论】:

    【解决方案2】:

    没有办法做到这一点,恕我直言。如果应用程序被终止,您将不会获得频繁的更新,这是用户选择终止您的应用程序的选择,Apple 尊重这一点。 iOS 不会在后台收集位置数据,并在您的应用再次启动时将其处理给您的应用。

    【讨论】:

    • 严重错误。您有许多不同的方式来唤醒(重新启动)并在后台使用位置。有很多应用程序发布来跟踪用户。您可以使用后台任务,将significanLocationChangesstartUpdatingLocation 组合在一起,并一起使用它们
    • 正如我所说,您可以结合不同的方法并根据需要获取位置更新
    • 但只有在发生重大变化之后,还是在应用程序终止后立即?
    • 您甚至可以避免使用后台任务杀死应用程序。杀死用户电池或使某些东西更智能取决于您。但是对于您的问题,可以是重要位置,可以是通知,无声通知,信标......等等
    • 如果您的应用程序被终止,您将需要等待某些东西,就像您说的那样,重要的位置或信标或无声通知什么的。因此,您不会在应用程序终止后立即收到位置更改。也许是一些技巧,比如无声通知……我说的对吗?如果您有技巧,请在此处提供,以便我们都可以学习,并感谢您的反对票。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    相关资源
    最近更新 更多