Hen*_*sel 6 iphone background multitasking ios4
我目前正在测试最新的iOS4功能,以便将我的位置感知应用程序放在后台.嗯,确实有效!但另一方面,处理巨大的电力使用是非常讨厌的.
该应用程序在过去四个小时内消耗了大约50%的电池电量.它阅读了Apple关于此主题的完整官方文档,但我仍然不确定我的应用程序的哪些部分仍在运行以及哪些功能被暂停(在UI绘图旁边,应该很清楚).
我不使用任何真正的样板代码,而是像ASIHTTPRequest这样的扩展库与我的webservice交谈.使用朋友汽车进行的测试表明,当我使用ie时,网络连接和位置服务仍在运行
[locationManager startMonitoringSignificantLocationChanges];
Run Code Online (Sandbox Code Playgroud)
背景:应用程序在后台并执行代码[...]
我应该写一个"裸机"功能来接收和发送这个位置数据吗?我应该在应用程序驻留在后台的时间内删除所有其他对象以减少内存占用吗?似乎还没有任何最佳实践.
有任何想法吗?也许你们可以向我提供一些你的见解.谢谢.
编辑: 有一个名为能量诊断仪器的新仪器工具,用于记录连接设备的任何电源使用情况(适用于iPhone 3GS及更高版本).此外,设备应用程序 - >开发人员 - >电源使用中的设备上还有另一项服务.在现场测试您的用电量非常棒.创建的日志可以稍后在仪器中提取.
参考: WWDC 2010会议309 - 使用仪器进行高级性能分析
听起来您的应用程序正在通过蜂窝网络传输位置数据。打开蜂窝无线电是导致电力耗尽的最快速原因之一,特别是当用户与蜂窝塔的信号连接较弱时。
您可能想要保存并打包一堆位置数据,并尽可能少地快速发送数据(每天两次,当用户停止移动 30 分钟时,仅在用户到达他们最喜欢的位置之一后)餐馆等)将收音机打开的次数减少一半可以使电池寿命接近加倍(除非用户还使用设备执行其他操作)。