当前位置: 首页 > 知识库问答 >
问题:

iOS-关闭应用程序时的核心位置和地理Geofence

谷梁煌
2023-03-14

我已经阅读了很多关于我的iOS应用地理Geofence的教程(例如,这里),但没有提到iOS是否允许在应用关闭时处理任何特定于应用的位置数据。

例如,我知道当应用程序在后台时,这些服务仍然会存在(如果编码正确),但当用户双击home按钮并关闭应用程序时,情况如何?仍然可以获得位置数据吗?

共有3个答案

徐昕
2023-03-14

如果您使用区域监控功能,即使应用程序关闭,您也可以以某种方式恢复应用程序,通常是通过创建本地通知,这样用户可以在应用程序中租用并执行特定任务,方法是查看-applicationdFinishLaunchingWithOptions:

公冶渝
2023-03-14

某些形式的位置更新需要应用程序在后台运行,有些则不需要。如果您想要“持续”的位置更新,那么应用程序需要在后台运行。如果您只想要重大更改(我认为它也适用于区域监控,尽管文档不是很明确),那么如果应用程序被终止,它将重新启动:

如果您启动此服务,并且应用程序随后被终止,则如果新事件到达,系统会自动将应用程序重新启动到后台。。。

(来自CLLocationManager文档)

郑正文
2023-03-14

根据Apple文档,在使用区域监控边界穿越部分:

在iOS中,您向location manager注册的区域在应用程序启动之间保持不变。如果在iOS应用程序未运行时发生区域交叉,系统会在后台自动唤醒(或重新启动),以便处理该事件。重新启动时,您之前配置的所有区域都将在您创建的任何location manager对象的monitoredRegions属性中可用。

所以是的,当系统的位置检测到您进入/退出(取决于您的设置)所需的区域时,您的应用程序将被唤醒(或重新启动!),所以这当然是即使您的应用程序没有运行。您只需要在应用程序委托中正确处理它,当应用程序重新启动时,您会在选项字典中传递一个UIApplication ationLaunchOptionsLocationKey键。有关详细信息,请参阅下面的留档链接。

请记住,在iOS6中不建议使用-start Monitor oringForArea: DesignredAccuracy:方法,因此不应该使用它。相反,请使用-start Monitor oringForArea

要了解如何处理您的应用程序在位置事件后重新启动时,请参阅此处的留档,您将看到的信息在已弃用方法的讨论中,但它应该仍然相关,我相信Apple忘记了将此信息迁移到新方法当他们弃用旧方法时。我已经向他们提交了一个错误。

使现代化

Apple已在我的错误报告后更新了CLLocationManager的留档。文档现在指定应用程序终止后启动或未启动哪些类型的位置监控。请参阅在后台使用位置服务

 类似资料:
  • 我刚刚开始使用我的第一个.Net核心应用程序,并尝试将npm用于客户端库。它们被添加到节点_模块,但没有“安装”到wwwroot。我的问题似乎以前有人问过,但没有答案: 如何将通过NPM安装的库包含到Visual Studio 2017上的MVC项目中 我已尝试安装cropperjs。在下载文件并将其添加到node_modules文件夹的情况下有效: 项目文件夹 现在我如何将这些文件到我的www.

  • 我想用python为我的iPhone构建一个IOS应用程序,但我有一个问题--我不知道哪个IDE最适合这个任务:/我曾经用过Java的Andriod Studio,我想知道是否有类似的东西,但对于使用python的IOS应用程序...我真的想在IDE里面有一个iPhone模拟器,就像在Andriod studio里面有一个Andriod设备模拟器一样,你可以用那部手机检查应用程序...如果有类似我

  • 问题内容: 单击主框架的关闭按钮时,应关闭该应用程序。但是我实现它的方式是,当我单击按钮时,它以a退出。 我担心程序会安全关闭,因为稍后我需要将内容持久保存到磁盘。 通过关闭按钮终止WxPython应用程序的 正确的非暴力方式 是什么? 这是我实现的程序的“主”循环: 这是在中实现回调的方法: 问题答案: 这是关闭框架的常规方法: 现在,如果您具有对wx.EVT_CLOSE的绑定,那么您将陷入无限

  • ASP.NETCore支持一个新的配置系统,如下所示:https://docs.asp.net/en/latest/fundamentals/configuration.html 也支持这种模式吗?NET核心控制台应用程序? 如果不是,什么是替代以前的和模型?

  • 在Asp。Net Core 3.1应用程序我有以下关于应用程序设置的部分: 我试图获取一些值,比如Facebook的Id,所以我尝试: 但这行不通。。。我怎样才能得到这些值?

  • 问题内容: 在Swing中,您可以简单地用于在关闭窗口时关闭整个应用程序。 但是,在JavaFX中找不到等效项。我有多个打开的窗口,如果一个窗口关闭,我想关闭整个应用程序。用JavaFX做到这一点的方法是什么? 编辑: 我了解可以覆盖以在窗口关闭时执行一些操作。问题是应该执行什么操作才能终止整个应用程序? 类中定义的方法不执行任何操作。 问题答案: 当最后一个关闭时,应用程序自动停止。目前,您的类