2012-09-28 76 views
1

我是初學者。我想開發一個可以生成基於位置的通知的應用程序。在Android開發者網站,我爲了保持電池壽命和數據交換之間的平衡中找到一個應該考慮的新的更新 Android基於位置的服務

  • 窗口,您聽位置更新

    1. 頻率。

    我知道頻率可以通過調用requestLocationUpdates()來控制。我的問題是如何控制我在哪裏偵聽更新?這是否意味着一旦我從LocationListener類的onLocationChanged()方法獲取了位置更新,我應該停止使用removeUpdates()監聽更新?

    感謝

  • +0

    我想出了一個算法,基料的更新,位置的粒度,並從以前的位置之間的距離時的位置更新。 –

    回答

    0

    我想你應該停止listenting更新,只有當你不再需要新的位置。如果您只需要一個新的地點,立刻停止聆聽是最好的方法。爲了獲得更多的位置(隨着用戶的移動),建議您開始收聽onResume中的位置更新,並停止在中註冊。這意味着只有當您的活動在所有其他人面前時(可見),纔會調用您的onLocationChanged

    總之,管理您需要的窗口的活動應該具有上述指定的這些調用。

    +0

    嗨,感謝您的回答 – Alexander

    +0

    不客氣!例如,我的應用程序請求onStart中的位置更新,並停止在onStop(主要活動)中詢問它們,因爲即使其他活動位於活動堆棧頂部時,我也需要獲取新位置(我只是確保忽略removeUpdates當新的活動仍然是我的)。祝你好運! –

    1

    當您註冊requestLocationUpdates()時,GPS設備纔會開始工作(並消耗功率)。

    定製GPS可以在更新之間切換,如果它們不是很頻繁。比方說,例如你每5分鐘就要求更新一次,那麼GPS可以關閉4分30秒。並及時開啓以獲取下一個位置。如果您每5秒鐘設置新的位置請求,則GPS在更新之間不會關閉。

    我有一個應用程序,保持GPS全時喚醒,記錄數據庫中的位置。此應用程序還可以顯示地圖並繪製記錄的曲目。我的經驗是,用於實時跟蹤變化的地圖繪製功率遠高於GPS使用的功率。

    好運

    +0

    謝謝。既然你已經有一個使用GPS的應用程序讓我問你是一個更好的方法來獲取使用服務的更新? – Alexander

    +0

    這取決於您的應用程序要求。在我的情況下,我希望讓用戶開始錄製,然後退出應用程序來做其他事情,而錄製繼續進行,這意味着將其作爲服務運行。如果您可以在用戶離開應用程序時停止請求而不影響功能,那麼請求更新活動會更容易。 – Luis