2017-03-15 65 views
0

當使用locationManager時,我有一個關於保存電池的問題。我一直在尋找在這裏: https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/LocationBestPractices.html 這裏: http://tumblr.twicetwice.net/post/47249353501/cllocationmanager-battery-saving-tips-and-best 在很多計算器的貼子,但我不能用最這些提示的一樣startMonitoringSignificantLocationChanges(),因爲我需要高精度的更新非常頻繁,也後臺。此外,我知道我不能在後臺使用計時器來獲取每10秒鐘的位置。現在,如果我不移動特定時間,我想停止獲取位置更新。當我再次移動時,我想再次獲取更新。我不能使用 pausesLocationUpdatesAutomatically = true,因爲我不希望用戶將應用程序放回到前臺來更新位置。當應用程序處於後臺時,是否有其他方式可以延長電池續航時間?我還用CoreMotion搜索了一些例子,因爲如果我不移動特定的時間,並且如果加速度計檢測到幾個步驟就打開它,我有想關閉GPS的想法。但是我發現這在後臺也不起作用,或者有人知道一種方法來實現這個功能嗎?當我移動並開始更新位置時,如果我在應用程序位於背景時移動,是否有更好的解決方案來停止更新位置?我會感謝任何我能做的建議。locationManager後臺電池使用時間

btw:我在Swift中很新,所以也許有非常簡單的解決方案,我不知道,也找不到。

回答

0

現在我想停止獲取位置更新,如果我不移動特定的時間。當我再次移動時,我想再次獲取更新

您可能正在描述訪問監控。 - 但總的來說,持續詢問高精度位置的電池非常昂貴;這就是爲什麼你不應該這樣做,除非設備連接到電源。

+0

感謝您的快速回答。我不能在這裏使用訪問監控,因爲據我所知,只有當我在特定位置停留幾分鐘時纔會觸發。我有一個tableView,顯示距離用戶不到200米的位置。現在,如果我離該位置50米遠,我想要收到推送通知。這一切正在工作,但它有很多電池消耗。我知道高精度位置更新消耗電池。正因爲如此,我想在用戶不移動的時候節省一些電量,當應用程序處於後臺時也是如此。你知道這是可能的嗎? – Marcel