1

我正在使用 CoreLocation 来确定用户的位置以计算距离并在地图上显示路线。为了最大限度地减少电池使用量,我在获得位置后关闭 GPS,并在 1 分钟后再次打开它。当应用程序处于活动状态时,一切正常,但在将其发送到后台并关闭 GPS 后,应用程序似乎根本处于非活动状态,它不输出任何内容(使用NSLog())。我在info.plist文件中添加了指令以允许应用程序在后台运行。当我不在后台关闭 GPS 时,该应用程序在前台工作以及在前台工作。

所以我的问题如下:是否总是需要在后台打开 GPS 以防止应用程序被挂起或有另一种解决方法(因为打开的 GPS 会耗尽电池电量)?

PS 我对 iOS 和移动开发完全陌生,所以也许有一些我必须知道的技巧。

4

1 回答 1

1

请参阅http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

苹果一般不支持长时间运行的后台任务。
这仅适用于特定任务:

音频、位置、voip、报亭内容、外部附件、蓝牙中央和蓝牙外设

如果您不使用任何这些,您的应用程序可能会被暂停。
在您的情况下,ypu 已指定位置,但禁用了位置更新。那么对于苹果来说,没有理由让你的应用程序处于后台模式。

于 2012-12-02T20:43:16.040 回答