最佳实践 - iPhone背景应用模式

时间:2010-08-28 01:28:55

标签: iphone background ios4 multitasking

我正在测试最新的iOS4功能,以便将我的位置识别应用程序放在后台。嗯,确实有效!但另一方面,处理巨大的电力使用是非常讨厌的。

该应用程序在过去四个小时内耗电量约为50%。它在这个主题上阅读了Apple的entire official documentation,但我仍然不确定我的应用程序的哪些部分仍在运行以及哪些功能被暂停(在UI绘图旁边,应该很清楚)。

我不使用任何真正的样板代码,而是像ASIHTTPRequest这样的扩展库与我的webservice交谈。使用朋友汽车进行的测试表明,当我使用时,网络连接和位置服务仍在运行。

[locationManager startMonitoringSignificantLocationChanges];

Apples Documentation on不同的应用程序状态

  

后台:应用程序在后台并执行代码   [...]

我应该写一个“裸机”功能来接收和发送这个位置数据吗?我应该在应用程序驻留在后台的时间内删除所有其他对象以减少内存占用吗?似乎还没有任何最佳实践。

有什么想法吗?也许你们可以向我提供一些你的见解。感谢。

修改 有一个名为 Energy Diagnostics Instruments 的新工具,用于记录连接设备的任何用电量(对于iPhone 3GS及更高版本)。此外,设备应用程序中的设备上还有另一项服务 - >开发者 - >电源使用。在现场测试您的用电量非常棒。创建的日志可以稍后在仪器中提取。

参考: WWDC 2010会议309 - 使用仪器进行高级性能分析

1 个答案:

答案 0 :(得分:4)

听起来您的应用通过蜂窝网络传输位置数据。打开蜂窝无线电是导致功耗最快的原因之一,尤其是当用户与蜂窝塔的信号连接较弱时。

您可能希望保存并打包一堆位置数据,并尽可能快速地发送数据(每天两次,当用户停止移动30分钟时,仅在用户到达一个之后)他们最喜欢的餐馆等等。打开收音机不到一半的时间可以让你接近电池寿命的两倍(除非用户也在用设备做其他事情)。