2011-08-29 123 views
0

在我的應用程序中使用當前位置lat,long。每5分鐘定期更新一次。並在後臺運行,意味着當我啓動我的應用程序時,彈出窗口出現,詢問「你想使用當前位置」,如果我按下「是」,那麼服務將在應用程序的背景上運行,並使用當前位置lat long,每5分鐘刷新一次,如何做到這一點。如何做出這樣的服務。由於我在新的Android詳細如何定期獲取當前位置的經緯度。

請解釋。 每一個幫助,將不勝感激 在此先感謝

回答

2

以用戶友好和節能的方式處理位置更新不是一件容易的事。

我強烈建議你閱讀雷託·梅爾的A Deep Dive Into Location(和second part)。

更新

有一個簡單的(錯誤)的方式來做到這一點:設置AlarmManager喚醒服務,每5分鐘該請求的位置。

這是錯誤的幾個原因。這樣做的權利首先回答自己這個問題:

  1. 你需要的位置更新正是每5分鐘?
  2. 即使您的應用不活躍?
  3. 即使手機處於睡眠模式?
  4. 即使手機長時間沒有移動(例如用戶正在睡覺)?
  5. 你需要什麼準確度? 10米還是300米?
  6. 你需要所有位置的GPS精度嗎? GPS在數小時內耗盡電池。
  7. 如果用戶移動速度很快,是否需要更新?在汽車中5分鐘可以意味着10英里。
+0

喜彼得,你推薦我這麼典型的解決方案我在Android的多數民衆贊成新的,爲什麼我張貼在這裏爲獲得適當的SOLN。但我不明白上面的鏈接。一路感謝您的歡迎,如果你有任何其他的解決方案。 – shyam

+0

hi peter,我可以創建一個服務類並使用timer.schedule()在某些時間間隔內運行服務,並在我的manifest.by中定義服務類,通過使用此代碼在必需的時間間隔內自動運行並能夠獲取當前的經緯度長 ? – shyam

+0

這不是一個好習慣,因爲在這種情況下,服務必須始終運行 - 這很難實現,因爲操作系統在需要時會殺死服務,並且服務在手機處於睡眠模式時也不會運行。建議使用AlarmManager。當你的應用程序不活動時,你也不需要這樣做。 –

相關問題