2011-08-23 26 views
0

在我的應用程序中,我需要所有Activity中的新gps座標。我不想在我的所有活動中初始化gps函數,也不想保留靜態引用(至於我認爲這不是最佳實踐)。Android的GPS-初始化一次,並在應用程序中使用它

我需要的是。

1)初始化gps函數一次,並在整個應用程序中使用它。 有沒有什麼辦法來解決我的問題

回答

0

您可以創建一個始終運行的服務來跟蹤GPS數據。每次onPause被調用時,它會開始1分鐘計數器(示例),直到它禁用GPS監視器。然後onResume將取消倒計時,以便保持GPS數據或者開始監聽GPS位置。

這種方法可以讓您的應用程序擁有相同的GPS數據,同時不會過度耗盡電量(因爲當應用程序未使用時GPS會關閉)。

僅分鐘長倒計時纔會被選中,因爲用戶可能會暫時退出應用程序,然後再次打開它。

0

你可能有一個看的LocationManager類的PASSIVE_PROVIDER常數:http://developer.android.com/reference/android/location/LocationManager.html#PASSIVE_PROVIDER

它可以讓你收到將通過其他提供商(GPS,網絡上檢索到的位置.. 。)在您的應用程序的其他地方,而不需要在設備上進行額外的工作。

+0

其實這很有趣。有一個活動接收GPS輸入,然後爲每個活動加載一個位置管理器作爲Passive_provider。我認爲這不像答案那麼幹淨,但至少這種方法不需要每次都修復。 – Ian

相關問題