当应用程序在后台时如何停止位置服务?

Posted

技术标签:

【中文标题】当应用程序在后台时如何停止位置服务?【英文标题】:How to stop location services when the app is in background? 【发布时间】:2011-09-05 09:15:55 【问题描述】:

在我的应用程序中,我在 UIWebView 中加载了一些网站。其中一些网站使用位置服务。

我的问题是,在查看其中一个网站时,当应用程序进入后台时,定位服务仍然处于开启状态。由于我的应用没有打开它们 - 我不知道该怎么做。

我目前的解决方案是在进入后台时加载一个空白页面,然后在移动到前台时加载原始站点。它可以工作,但是在查看应用程序时,用户可以看到空白页面 - 这不是很好。

有人有其他想法吗?

【问题讨论】:

【参考方案1】:

您可以在settings 中访问location services 并关闭所有使用定位服务的应用程序。我的是拇指说话,它正在运行并缩短电池寿命。

【讨论】:

【参考方案2】:

您可以退出应用程序而不是在后台发送。或者您可以在应用进入后台时取消 webView 请求。

【讨论】:

关闭应用程序不是一个选项。我考虑过在进入后台时使用“[webView stopLoading]” - 但该网站已经加载。如果页面已经加载,如何取消请求?【参考方案3】:

当您从多任务处理返回时,应用程序保持完整是否重要?

如果不是 100% ,我认为您应该尝试在即将进行多任务时加载一个空白页面。

回来时,用户可能有不同的位置修复,所以无论如何你都需要刷新页面..

【讨论】:

如果您再次查看我的问题,您会发现这正是我所做的。这还不够好,因为您可以查看空白页。我想加载应用程序在进入后台时执行的屏幕截图,但我发现它的位置仅在模拟器上(在快照下),而不是在设备上。 哎呀,对不起,我想我没注意。但是,嘿,内置的 Safari 应用程序不完全一样吗?!!? X 分钟后返回站点时,通常会刷新站点(从...开始,当然...空白页)。 Safari 确实以某种方式解决了这个问题 - 我想是苹果的帮助......我正在使用 UIWebView 并想以某种方式解决它:-)

以上是关于当应用程序在后台时如何停止位置服务?的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序在后台运行时无法找到位置更新

如何知道何时停止定位服务?

当应用程序移到后台时,在前台服务中获取位置更新不起作用

如何在 Ionic 应用程序中添加后台服务

当我“关闭” UISwitch 时,后台位置服务跟踪不会停止

当应用程序从后台返回到前台时,CMDeviceMotion 停止更新