iphone - 最佳实践-iPhone后台应用模式

标签 iphone background ios4 multitasking

我目前正在测试最新的 iOS4 功能,以将我的位置感知应用程序置于后台。嗯,它确实有效!但另一方面,处理巨大的电力使用却相当困难。

该应用在过去四个小时内消耗了约 50% 的电池电量。它读取 entire official documentation Apple 关于此主题的信息,但我仍然不确定应用程序的哪些部分仍在运行以及哪些功能已暂停(除了 UI 绘图之外,这应该很清楚)。

我不使用任何真正的样板代码,而是使用扩展库,例如 ASIHTTPRequest与我的网络服务交谈。对 friend 的汽车进行的测试是否表明,当我使用即时,网络连接和定位服务仍在运行

[locationManager startMonitoringSignificantLocationChanges];

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

Background: The application is in the background and executing code [...]

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

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

编辑: 有一个名为 Energy Diagnostics Instruments 的新仪器工具。 记录连接设备的所有电量使用情况(适用于 iPhone 3GS 及更高版本)。此外,设备上还有另一个服务,位于“设置应用程序”->“开发人员”->“电源使用情况”。在现场测试您的电量使用情况非常棒。创建的日志可以稍后在工具中提取。

引用: WWDC 2010 第 309 场 session - 使用仪器进行高级性能分析

最佳答案

听起来您的应用正在通过蜂窝网络传输位置数据。打开蜂窝 radio 是导调用力耗尽的最快速原因之一,特别是当用户与蜂窝塔的信号连接较弱时。

您可能想要保存并打包一堆位置数据,并尽可能少地快速发送数据(每天两次,当用户停止移动 30 分钟时,仅在用户到达一个位置后发送)他们最喜欢的餐馆等)将 radio 打开的次数减少一半可以使电池生命周期接近加倍(除非用户还用设备做其他事情)。

关于iphone - 最佳实践-iPhone后台应用模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3589086/

相关文章:

iphone - 如何获取 iPhone 录制的视频大小?

iphone - 是否可以通过编程方式调暗 iPhone 相机闪光灯的光线?

ios - UITableView 滚动时乱序

c# - 如何设置 ViewBox 背景?

iphone - 每次更改选项卡时如何调用函数?

css - progid :DXImageTransform. Microsoft.AlphaImageLoader 导致链接在 ie8、ie7 和 ie6 中无法单击

colors - gnuplot 背景颜色

objective-c - 添加/删除带有动画的 UITableViewCell?

iphone - 使用 MGTwitterEngine iphone 在 Twitter 上关注

iphone - iOS7 UItableview 编辑模式内容重叠