4

首先我希望不要重复任何话题,在问之前我已经在互联网上阅读了很多时间。

我正在为 iOS => 5 开发一个应用程序,我需要获取用户位置,但我并不总是需要一个非常准确的位置,所以当应用程序进入后台时,我将正常位置模式更改为显着位置更改以及何时应用程序进入前台我停止了重要的位置更改模式并恢复正常的位置模式,一切都很好,

我的问题是当应用程序进入后台模式甚至用户杀死应用程序时,GPS信号(紫色箭头)仍然出现,即使在重新启动设备后,唯一让它消失的方法是卸载或禁用当应用程序进入后台时,位置会发生重大变化,但是当用户进入后台模式时,我需要这种模式工作,也许在应用程序被杀死时不需要。

我不知道当用户杀死应用程序时如何停止服务......因为如果您启用了多任务,则不会调用事件“applicationWillTerminate”。

我的主要原因是我不希望紫色箭头总是出现,即使应用程序被杀死也是因为我不希望用户认为应用程序正在耗尽电池......所以用户不希望安装应用程序。

第一个问题:如果为应用启用了显着位置更改,即使应用被杀死,紫色箭头总是出现是否正常?

第二个问题:有什么办法可以改变这一点,至少在应用程序被杀死以隐藏紫色箭头时停止服务?

谢谢你们。如果有问题,对不起我的英语。

4

3 回答 3

4

经过几天的研究以确定这项服务,似乎没有办法在没有顶部栏中的箭头的情况下使用背景中的重大位置变化。我一直在测试不同的应用程序并通过互联网阅读,但没有什么可以解决这个问题。

唯一的“解决方法”是在应用程序中禁用多任务模式,并在“applicationWillTerminate”事件中禁用重要的位置更改,但没有意义......我总是丢失背景位置,不仅当应用程序被杀死......所以没有用。

这很糟糕......是一项非常好的服务,可以节省电池电量,但作为用户和开发人员,我不希望应用程序即使在应用程序被杀死后也总是出现这个图标,作为开发人员,我不希望人们卸载出于这个原因,作为普通用户,我不知道这个图标是什么意思,如果是正常的 GPS 或重要的位置发生变化,这意味着什么……如果我的电池正在耗尽。

在后台任务中获取位置但对电池有很大影响的另一种选择....

我希望苹果在未来的版本中解决这个问题......添加至少一个新箭头或仅在新位置到达时显示,而不是始终显示或在应用程序被杀死时允许弯腰。

所有这些都在 iOS - 6.1 上进行了研究

谢谢大家。

于 2013-03-27T11:37:15.837 回答
1

当您使用重要的位置更改服务时,操作系统会保持您的应用程序运行。如果应用程序在后台并被杀死,操作系统会重新启动它,因此紫色箭头将始终显示。当检测到新位置时,应用程序将重新启动。从文档:

如果您保持此服务运行并且您的应用随后被暂停或终止,则该服务会在新的位置数据到达时自动唤醒您的应用。在唤醒时,您的应用程序将进入后台并给予少量时间来处理位置数据。...要停止重大更改位置服务,请调用该stopMonitoringSignificantLocationChanges方法。

于 2013-03-25T17:01:34.287 回答
0

嗯,有趣。我刚刚看到另一个应用程序的问题 - 看到箭头仍然处于活动状态让我想禁用该应用程序的位置更新,所以问题是真实的。我能想到的最好的事情是有某种计时器在一定时间后禁用位置监控,如果这适合您的应用程序。

于 2013-03-25T17:05:57.437 回答