1

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

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

我正在做一些测试,偶尔我会调用 stopMonitoringSignificantLocationChanges。

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

怎么会这样?

杀掉一个应用程序不应该导致重大的位置变化监控停止吗?

这肯定发生在 5.1 中......尚未使用 5.0 进行测试。

4

2 回答 2

5

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

于 2012-05-05T01:41:11.253 回答
3

你确定你stopMonitoringSignificationLocationChanges在后台/终止之前打电话?

看看CLLocationManager的文档——这可能对你来说很重要:

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

那里有一些非常具体的细节,关于当你被终止时如何处理数据(在里面application:didFinishLaunchingWithOptions:)。

于 2012-04-30T05:05:34.573 回答