2011-04-12 17 views
2

我們需要爲我們的應用程序提供位置服務,可以從任何地方使用。 我們用系統服務和應用上下文的s singletone和更多,並有兩個基本方法開始停止它們分別監聽位置提供商和停止監聽。有超時的位置

我們有getLastLocation方法來檢索我們能找到的當前最新更準確的位置。

我們有一個讓我頭疼:-)

位置getLocationWithWait(C類),它認爲如果有得到一個位置,如果沒有它會返回null,將創建一個定時器45秒的另一種方法。如果45秒過去了,並且沒有找到位置,那麼定時器將廣播給參數'no location'廣播中給出的類,否則如果位置回調將被調用,它們將取消定時器並且將發送'找到的位置'在參數中向班級廣播。 因此,這裏是我的問題:

  1. 我開始覺得這裏的整個 架構是錯誤的,實現一個位置 服務,以滿足任何活動我 應用程序的任何 更好的辦法?
  2. 我用一個定時器的不處理程序,因爲 我使用singletone不是 活動,所以我不活套的 創建帶有彎線程看起來 對我來說,就像創建 另一個線程定時器壞.. i 確實想用活動 代替,但是......如果活動 暫停並重新開始,我需要保留 跟蹤定時器的剩餘時間。
  3. 的廣播也可以是 問題如果activty暫停 會錯過廣播,然後 我需要跟蹤我 singletone後的幾個州,因爲 StickyBroadcast可以解決,但 一個我可以不會發送到特定的 類,而只能發送到整個系統。

因此,最終會有什麼好處,使這個類的服務?(說實話,我想也許是一個優勢,但不是很多)我想要一個位置服務的超時很像谷歌在他們的「我的位置「在地圖上。

10x。

回答

-1

Requesting Location Updates中所述,使用LocationListener不是更好嗎?

然後,您可以在onResume()

使用「FASTFIX」如果不知道多一點關於你的要求,這是很難做出更具體的建議。

希望這有助於

菲爾Lello

+1

感謝:-) 回覆我用LocationListener的的LocationHandler類中。 我需要的是在任何活動中都可以使用的位置服務,因爲我需要定時器,所以它會堅持到android生命週期,這是一個問題。我想要一個位置在45分鐘內到達或給出超時通知,將使用處理程序的活動將負責通知,但LocationHandler將負責超時,如果不是,則不適用於我知道X秒已經過去(方向改變可以搞砸了) – codeScriber 2011-04-12 15:13:44