【发布时间】:2012-11-06 16:01:45
【问题描述】:
我们的用户不断抱怨即使应用程序被终止,紫色箭头仍然出现,因此他们自动认为它正在耗尽他们的电池。
我们通过调用仅使用显着的位置变化
[locationManager startMonitoringSignificantLocationChanges];
因此,如果我们不停止重要的位置更改,紫色箭头会一直亮着(我们的用户认为他们的电池会耗尽)。
即使我们想在应用终止时停止重大的位置更改,我们也不能因为 applicationWillTerminate 很少被调用。
所以有3个选项:
- 保持原样 - 但用户不断抱怨,因为苹果没有区分使用常规电池消耗位置的应用程序和使用显着位置变化的应用程序。
- 使用常规的 [locationManager startUpdatingLocation],以便在应用程序终止时进行监控。这里的问题是,只要应用没有终止,它确实会消耗用户的电池。
-
打电话
(void)applicationDidEnterBackground:(UIApplication *)application { [locationManager stopMonitoringSignificantLocationChanges]; }这里的问题是我们没有从背景中的位置变化中受益……
是否有任何其他建议可以让我们这样做:
- 只要应用是后台就可以监控位置(紫色箭头在这里是可以的)
- 当应用被杀死时停止位置监控(紫色箭头在这里不可以)
- 使用重大位置更改,以免耗尽用户的电池电量。
?
谢谢
【问题讨论】:
-
当您使用任何位置服务时,它应该是紫色的,这样应用程序就无法在用户不知情的情况下对其进行跟踪。不是在 GPS 开启时指示。这不是错误。
-
@progrmr 我曾建议我们将此描述为一个错误,但对您认为它不是的建议不屑一顾。我不知道“[如果]您让[重大更改]服务运行并且您的应用程序随后被暂停或终止,则该服务会在新的位置数据到达时自动唤醒您的应用程序。”这意味着终止的应用程序可以重新唤醒并跟踪我们,因此位置服务图标是合适的。我希望这两种服务之间有一些视觉上的区别,但可惜没有。更重要的是,我很抱歉对你的建议不屑一顾。你是对的。
标签: iphone objective-c ios location core-location