【问题标题】:how to get user's current location when application has been terminated应用程序终止时如何获取用户的当前位置
【发布时间】:2015-09-25 22:27:25
【问题描述】:

我已经阅读了许多教程,但无法找到正确的解决方案。我正在开发基于位置的应用程序,我需要获取用户的当前位置,即使应用程序在前台或后台运行也没关系。那么当我杀死或终止应用程序时,是否可以获取用户的当前位置?

【问题讨论】:

  • 使用重要的监控更新位置——显示该位置的最后一个对象
  • @Anbu.Karthik 从上周开始,我一直在关注您建议的链接,并且还从 github 下载了演示代码并安装在我的 ipad 中,但它无法正常工作。我想在 didUpdateLocations 方法中调用 webservice,但是当应用程序终止时它永远不会被调用。你能帮我吗?

标签: ios objective-c core-location cllocationmanager


【解决方案1】:

是的,这是可能的。您必须使用方法 startMonitoringSignificantLocationChanges。根据 CLLocationManager 文档

如果您启动此服务并且您的应用程序随后 终止,系统自动重新启动应用程序到 新事件到达时的背景。在这种情况下,选项 传递给应用程序的字典:didFinishLaunchingWithOptions: 您的应用程序委托的方法包含密钥 UIApplicationLaunchOptionsLocationKey 来表明你的 由于位置事件而启动了应用程序。重启后, 您仍然必须配置一个位置管理器对象并调用它 方法继续接收位置事件。当你重新启动 位置服务,当前事件被传递给您的代表 立即地。此外,您所在位置的 location 属性 manager 对象甚至填充了最新的位置对象 在您开始定位服务之前。

【讨论】:

  • 谢谢你的重播......我从上周开始关注mobileoop.com/…这个链接......但是 didFinishLaunchingWithOptions 和 didUpdateLocations 从未被调用......我正在我的 ipad 上进行测试。 ..当这两种方法被调用时,你能帮我吗
  • didFinishLaunchWithOptions 在应用启动时被调用。它与位置服务无关。如果您的应用程序启用了定位服务,请检查您的 ipad 的隐私 > 定位服务。同样,从 ios8 开始,您需要获得用户的许可才能使用位置服务。
  • 是的,我已经授予了位置权限,并且我的 ipad 中启用了位置服务....让我知道应用程序终止时调用了哪个方法,所以我将在该方法中继续调用我的 web 服务。
  • - (void)applicationWillTerminate:(UIApplication *)application 在应用程序终止时在应用程序委托中调用。
  • 我的意思是我的应用程序已经终止了,那么我在哪里可以为 web 服务编写代码以继续将 lat long 上传到服务器? applicationWillTerminate 此方法仅在应用程序终止时调用一次。
猜你喜欢
  • 1970-01-01
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
  • 1970-01-01
  • 2015-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多