即使应用程序处于终止状态或被杀死,如何在 iOS 中获取位置更新? [复制]

Posted

技术标签:

【中文标题】即使应用程序处于终止状态或被杀死,如何在 iOS 中获取位置更新? [复制]【英文标题】:How to get location updates in iOS even if the app is in terminated state or is killed? [duplicate] 【发布时间】:2017-08-10 11:20:38 【问题描述】:

我搜索了很多一周。我在谷歌上搜索了同样的问题,我能够得到一些工作。但是位置更新不适用于暂停状态。它仅适用于前台和后台状态。

我还需要在终止状态后更新位置。

【问题讨论】:

请阅读How to Ask 并使用tour。您应该相应地更新。你必须表现出一些努力。你试过什么,一些代码等等。 您可以获得“重大位置变更服务”,查看此答案“***.com/questions/37450524/…”或阅读此...developer.apple.com/documentation/corelocation/… 【参考方案1】:

请参考applicationWillTerminate

Apple 文档中说:

这个方法让你的应用知道它即将被终止并且 完全从记忆中清除。您应该使用此方法执行任何 您的应用程序的最终清理任务,例如释放共享资源, 保存用户数据,并使计时器失效。您对此的实施 方法大约有五秒钟的时间来执行任何任务并返回。 如果该方法在时间到期之前没有返回,系统可能会杀死 整个过程。对于不支持后台的应用 执行或链接到 ios 3.x 或更早版本,此方法是 当用户退出应用程序时总是调用。对于支持的应用程序 后台执行,一般不调用这个方法 用户退出应用程序,因为应用程序只是移动到后台 那个案子。但是,可以在以下情况下调用此方法 应用程序在后台运行(未挂起)并且系统需要 出于某种原因终止它。调用此方法后,应用程序 还发布一个 UIApplicationWillTerminate 通知给 感兴趣的对象有机会响应过渡。

如果您想在应用不在内存中时获得用户的位置,简短回答:不可能

【讨论】:

仍然,当 iphone 终止时我没有得到任何位置更新?谁有代码请发给我? locationManager.allowsBackgroundLocationUpdates = true locationManager.pausesLocationUpdatesAutomatically = false locationManager.startMonitoringSignificantLocationChanges() 您还必须在 plist 文件中设置某些键并请求授权等。

以上是关于即使应用程序处于终止状态或被杀死,如何在 iOS 中获取位置更新? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

ios检测终止状态下的蓝牙状态变化

即使在应用程序被杀死后如何继续进行 iOS 位置跟踪?

远程通知到达时哪个代表首先调用,而我的应用程序处于终止模式(不在后台)

iOS:如何判断应用程序何时暂停? [复制]

ios检测终止状态下的蓝牙状态变化

如何知道我的应用程序被杀死的原因