即使在任务栏中杀死后,应用程序仍在使用iOS定位服务



我有一个使用startMonitoringImportantLocationChanges的应用程序。

打开此功能后,右上角的紫色箭头会出现。

我正在做一些测试,偶尔我会调用停止监控显着位置更改。

发生这种情况时,即使我在 Xcode 中杀死了应用程序,紫色箭头仍然会显示。 我进入 Settings.app ->定位服务,看到我的应用程序旁边的紫色箭头也亮起,这意味着它仍在使用它。即使在没有将 Xcode 连接到设备的情况下运行时,以及在我从多任务栏中终止应用程序之后,也会这样做。

这怎么可能?

杀死应用程序不应该导致重大位置更改监控停止吗?

这肯定发生在 5.1 中......还没有用 5.0 测试过。

我也遇到了这个问题,但我没有监控重大的位置变化。它源于使用 CLLocationManager 并将地图视图设置为在 Xcode 中的属性下显示用户位置。告诉[locationManager stopUpdating]让我的位置经理停止发送消息,但来自地图视图的消息仍然在 a'comin 上。直到我告诉地图视图[mapView setShowUsersLocation:NO]它才退出。从你最初的帖子中不确定你是否正在使用 MapKit,但我想我会把它扔在那里以防万一。

您确定在后台/终止之前致电stopMonitoringSignificationLocationChanges

看看CLLocationManager的文档 - 这可能是对您来说很重要的部分:

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

其中有一些关于终止时如何处理数据的非常具体的细节(在application:didFinishLaunchingWithOptions:内)。

最新更新