我正在做一个项目,我试图在所有状态下获取位置更新,即使应用程序被终止。我已经使用了所有可能的解决方案,但在终止的情况下仍然无法正常工作。现在我想澄清一个疑问 - 我正在将 startUpdatingLocation() 用于前景和背景。我们知道 startMonitoringSignificantLocationChanges() 是在任何位置更新的情况下重新启动应用程序的唯一方法。我们可以在 applicationWillTerminate() 方法中调用“startMonitoringSignificantLocationChanges()”吗?当有任何重要的位置更新时,它会起作用并重新启动应用程序吗?请告诉我。
谢谢!!
最佳答案
你不能在 applicationWillTerminate()
中这样做,因为闭包现在不会返回值。如果您想一直获取用户位置,请尝试后台模式。
这是 Apple 文档中的描述:
在这种情况下,选项字典传递给 application:willFinishLaunchingWithOptions:
和 application:didFinishLaunchingWithOptions:
您的应用程序委托(delegate)的方法包含 key UIApplicationLaunchOptionsLocationKey
表示您的应用是由于位置事件而启动的。重新启动后,您仍然必须配置位置管理器对象并调用此方法以继续接收位置事件。当您重新启动位置服务时,当前事件会立即传递给您的委托(delegate)。此外,即使在您启动定位服务之前,您的位置管理器对象的位置属性也会填充最新的位置对象。
它清楚地告诉您如何获取位置。
关于ios - 应用程序终止时使用位置更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34589592/