2016-01-04 51 views
1

我正在研究一个项目,我试图在所有状态下获取位置更新,即使应用程序已终止。我已经使用了所有可能的解决方案,但仍然无法解决终止问题。现在我想清除一个疑问 - 我使用startUpdatingLocation()作为前景和背景。正如我们所知,startMonitoringSignificantLocationChanges()是在任何位置更新的情况下重新启动应用程序的唯一方法。我们可以在applicationWillTerminate()方法中调用“startMonitoringSignificantLocationChanges()”吗?并且在有任何重要的位置更新时,Will会继续工作并重新启动应用程序?请告诉我。当应用程序终止时使用位置更新

谢谢!

回答

1

您不能在applicationWillTerminate()中这样做,因为现在闭包不会返回一个值。如果您想要始终获取用户位置,请尝试后台模式。

这是苹果文档的描述:

在这种情况下,选择字典传递给你的应用程序代理的application:willFinishLaunchingWithOptions:application:didFinishLaunchingWithOptions:方法包含键UIApplicationLaunchOptionsLocationKey,表明您的应用程序是因为位置的推出事件。重新启动后,您仍然必须配置位置管理器对象并调用此方法继续接收位置事件。当您重新启动位置服务时,当前事件会立即传递给您的代理。另外,即使在启动位置服务之前,您的位置管理器对象的位置属性也会填入最近的位置对象。

它清楚地告诉你如何获得位置。

+0

使用Background模式,我们只能获得前景和后台的位置更新,而不会终止应用程序。对? – Kirti

+1

@KKb背景模式可让您获取位置,即使您的应用程序处于非活动状态。 – Lumialxk

+0

@Lumialxk ...如果我想要更新应用程序终止,暂停或杀死时该怎么办? – Kirti

相关问题