监视区域但应用程序被杀死时位置图标消失

Posted

技术标签:

【中文标题】监视区域但应用程序被杀死时位置图标消失【英文标题】:Monitoring regions but location icon disappears when app is killed 【发布时间】:2013-10-05 13:40:15 【问题描述】:

我有一个CLLocationManager 包含在singleton 中,并且我添加了大约十几个区域进行监控。当应用程序位于前台/后台时,我已成功收到越界通知。但是,当我强制退出应用程序时,位置图标会消失,并且我没有收到任何回调。

【问题讨论】:

请提供一个简短、独立、正确的示例。 您需要发布围绕您的区域添加、后台和区域进入/退出事件的代码。 这个问题实际上似乎并不局限于我的应用程序。我已经测试了一个带有单个位置管理器的干净应用程序以及 Apple 自己的提醒应用程序。在每种情况下,当强制退出应用程序时,位置图标都会消失。我在 iPhone 5 手机上测试了相同的位置提醒,每部手机都运行 ios7。带有在后台运行的提醒应用程序的手机会提供有关过境的提醒。带有终止提醒应用程序的手机没有。这是 iOS7 的错误还是对预期功能的误解? 【参考方案1】:

据我所知,这是 iOS7 的预期功能。这是我发现的对类似问题的回复,在这种情况下涉及重大位置更改:https://devforums.apple.com/message/882691#882691:

如果用户在应用切换器中向上滑动,则操作系统不会启动应用,除非用户明确告知这样做。所以不,SLC 不会启动应用程序,也不会发出静默通知。此时唯一会启动应用程序的是用户点击图标。这里的意图是用户已经表达了他们出于任何原因不再运行该应用程序的选择,因此我们对此表示尊重。 在这种情况下,你真的无能为力。下次用户启动应用程序时,您可以让他们知道某些数据可能丢失,尽管您确实无法判断是否丢失了数据(即您可能已在后台被操作系统杀死,用户可能未移动,因此不会触发任何 SLC 通知)。我的建议是在操作系统的政策范围内收集你可以收集的数据,如果用户手动杀死了应用程序,那么尊重这个愿望并且不做任何事情。 如果这种行为变化最终给您带来问题或(尤其是)给您的用户带来困惑,请务必提交错误报告。

【讨论】:

那么,有没有办法在应用被杀死时获取用户位置?

以上是关于监视区域但应用程序被杀死时位置图标消失的主要内容,如果未能解决你的问题,请参考以下文章

即使在应用程序被杀死后如何继续进行 iOS 位置跟踪?

应用程序被杀死时阻止 UILocalNotification

在应用程序未运行时处理推送通知(应用程序被杀死)

Mac App SQLDeveloper在应用程序关闭后卡在Dock中,进程被杀死

android 怎么让通知栏点击后不消失 但可以被按钮清除

在应用程序被杀死并重新启动后,Android 应用程序黑暗主题消失了