0

我有一个使用 LocationManager 的应用程序。有一段时间我在使用重大位置更改通知。当我阅读文档时,我相信两件事是真实的:

  1. 他们并没有真正消耗任何额外的电池,因为你基本上是在告诉电话,'只要告诉我你已经拥有的知识。
  2. 当应用程序关闭时,通知停止。

一旦我介绍了这一点,我就收到了很多人发来的电子邮件,他们指责我烧毁了他们的电池。所以我把它拿出来了。

昨天收到一封电子邮件,告诉我设置/隐私中的位置箭头仍然是紫色的,即使应用程序没有运行也是如此。在我的手机上也是如此。

我只能想到两种可能:

  1. 尽管升级到较新版本等,重大变更通知的注册仍然有效。
  2. 或者,有一次应用程序在位置管理器打开时崩溃并且从未关闭过。

2 似乎很牵强,因为我认为可能会发生很多这样的事情。我有点失望的是,在 Instruments 中无法查看系统认为它对应用程序的义务是什么,以及这些义务是什么时候生效的。

4

1 回答 1

0

很高兴看到应用程序的哪些代理处于活动状态,甚至超出了正在运行的应用程序。

根据我对重要位置更改的了解,它们的工作原理与区域监控相同。如果您有用户抱怨电池寿命,他们可能会被其他东西烧毁。-significantLocationChanges 使用的位置项比 -regionMonitoring 少。我相信它们与蜂窝塔严格相关。他们也可能使用 Wifi 检测,但他们不会做广告。

此外,即使应用程序已被终止以及在更新和升级之间,位置监控也会持续存在。我不知道如果您升级应用程序并在应用程序仍在监视它们时删除委托方法,应用程序将如何运行。我的猜测是他们会在那里被孤立,回调会尝试通知您的应用程序,但方法已经消失并将被忽略。只是一个猜测,但可能值得测试。可能值得留下那些或删除所有位置监控的方法。然后在以后的更新中删除所有这些,以确保没有人仍然有任何活动的位置代码。

于 2013-03-26T15:03:00.940 回答