2010-08-28 48 views
6

我目前正在測試最新的iOS4功能,將我的位置感知應用程序置於後臺。那麼,它的確行得通!但另一方面,處理巨大的用電問題則相當棘手。最佳實踐 - iPhone背景應用程序模式

在過去的四個小時裏,該應用程序消耗了約50%的電池電量。它閱讀了蘋果公司關於這個主題的entire official documentation,但我仍然不確定我的應用程序的哪些部分仍在運行,哪些功能被暫停(除了UI圖,應該清楚)。

我不使用任何真正的樣板代碼,但擴展庫如ASIHTTPRequest與我的web服務交談。用朋友的車測試你表明的網絡連接和與位置服務時,我即使用

[locationManager startMonitoringSignificantLocationChanges]; 

Apples Documentation on不同的應用程序狀態

背景仍在運行:應用程序在後臺執行代碼 [...]

我應該寫一個「裸機」函數來接收和s結束這個位置數據?我應該在應用程序駐留在後臺時刪除所有其他對象以減少內存佔用?似乎還沒有任何最佳做法。

任何想法?也許你們可以向我提供一些你的見解。謝謝。

編輯: 有一個稱爲Energy Diagnostics Instruments新儀器與工具連接的設備記錄任何電量(爲iPhone 3GS及更高版本)。在設置應用程序 - >開發人員 - >電源使用情況下,設備上還有另一項服務。在現場測試你的用電量真是太好了。創建的日誌可以稍後在樂器中拉出。

參考: WWDC 2010屆309 - 高級性能分析工具

回答

4

聽起來像你的應用程序是通過蜂窩網絡發送的位置數據。打開蜂窩無線電是導致功率消耗的最迅速原因之一,特別是當用戶與蜂窩塔之間的信號連接較弱時。

您可能想要保存並打包一堆位置數據,並儘可能快地發送數據(每天兩次,當用戶停止移動30分鐘時,僅在用戶到達他們最喜歡的餐館之一等)。打開收音機的頻率不到一半,可以讓你接近於電池壽命的兩倍(除非用戶也在使用該設備做其他事情)。