調整儲存電池電量和資料交換的模式
在你測試你的應用程式時,你可能會發現,為了提供良好的位置和效能,可能需要對模式進行某些調整。以下是在這兩者之間尋求良好平衡時可能要改變的一些事情。
減少視窗的尺寸
用一個較小的視窗來允許監聽位置的更新,意味著與GPS和網路位置伺服器進行的互動較少,這樣就能夠延長電池電量使用周期。但它也允許從較少的位置中選擇一個最好的估算結果。
給位置提供器設定較低的更新頻率
減少位置更新在視窗中顯示的頻率也能夠改善電池利用效率,但會影響精確度。這個值的權衡要依賴於如何使用你的應用程式。通過提高requestLocationUpdates()方法中參數的值來降低更新頻率,這個參數值指定了更新的間隔時間和最小距離變化。
限制使用一組提供器
根據你的應用程式所要使用的環境或期望的精度層級,你可以選擇只使用網路位置提供器或GPS,只跟其中一個位置服務進行互動會提高電池電量的利用率,降低位置精度。
常見的應用情境
有很多原因讓你想要在應用程式中擷取使用者位置。在下面的一些情境中,你能夠使用使用者位置來豐富你的應用程式。每個情境還介紹了開始和啟動位置監聽的時機,以便擷取良好的位置並節省電池電量。
標記使用者所建立內容的位置
你可能要建立一個標記使用者建立內容所在位置的應用程式,以便使用者能夠分享他們的本地體驗、發送餐館的介紹、或者記錄一些能夠增強他們的當前位置的內容等等。展示了這種需求是如何跟位置伺服器互動的:
圖2.時間軸代表了使用者擷取位置的視窗,以及使用者使用當前位置停止監聽的時機。
這裡使用了與前文“如何在代碼中擷取使用者位置(圖1)”相同的表述模式。為了擷取最好的位置精度,你可能選擇在使用者開始建立內容或應用程式啟動時,就開始監聽位置的更新,然後在使用者完成內容的發送或記錄時,停止監聽。你需要考慮建立內容這樣的任務需要花費多長時間,並判定這期間是否允許對位置的估算進行有效收集。
協助使用者判斷方位
你可能要建立一個能夠試圖給使用者提供方位選擇的應用程式。例如,根據使用者的位置,可以提供一個附近餐館、商店、娛樂場所的列表和建議。
要達到這樣一個流程,你可能要做以下選擇:
1.
在擷取新的最佳估算位置時,重新安排建議;
2. 如果建議已經穩定,那麼就停止監聽位置的更新。
示範了這種模式:
圖3.時間軸代表了每次使用者位置更新時,動態更新資料的視窗。