我发现我的应用程序仍在使用定位服务的问题,即使该应用程序已从多任务处理栏中终止。如果我进入Settings > Privacy > Location Services
,我注意到我的应用程序有一个紫色的位置图标,即使后台没有应用程序也是如此。如果我为我的应用关闭定位服务,状态栏中的图标就会消失。
我已在我的应用程序中确保在不需要位置服务时停止它们。我已经在 Instruments 中多次验证了这一点。GPS 在应有的时间打开,当使用定位服务完成任务时,GPS 将关闭。
在我的applicationWillTerminate:
委托中,我什至设置了lcoationManager
to nil
,将委托设置为nil
并确保所有这些都已清理干净。当我杀死我的应用程序时,我仍然在状态栏中看到该图标。
这个特定的应用程序还有一个蓝牙配件,可以让应用程序做某些事情。例如,我按下我的 BLE 附件上的一个按钮,它使应用程序执行一些会触发 a 的操作UILocalNotification
,所以我看到了一个横幅。我不知道如何重现此特定问题,但我注意到即使多任务栏中没有应用程序并且我按下 BLE 附件上的按钮,它也会触发应用程序中的操作,我会看到通知横幅。
几个问题:
- 有没有其他人见过这样的事情?
- 即使我在应用程序终止时清理得非常好,如何确保我的应用程序被完全杀死?
- 为什么即使应用程序被杀死,位置服务仍会运行。另外请记住,我不使用任何区域监控或重大位置更新更改。
更新:
因此,我使用了该应用程序的早期版本并重置了位置和隐私设置,令我惊讶的是,后台应用程序使位置图标消失(因为它应该一直这样做。对我来说,这意味着 iOS 保留了一些残留信息或应用程序中的设置?任何人都知道这里会发生什么?
更新 2:
仍然出现在 iOS 8.1.x 中。