2011-05-20 107 views
1

我在啓動locacionListener服務的Locator.java類中啓動活動。該活動將位置寫入數據庫。我想知道當我移動到下一個屏幕(活動)時,職位將繼續寫入數據庫,或者我需要返回Locator.java繼續寫作。當我最小化應用程序時也是如此。在活動之間保持locationListener活動

我有關於使用服務的想法,但我想確定我需要它。

回答

2

只要服務啓動,並且在設備上提供足夠的資源,服務就會繼續在後臺運行。切換活動,最小化或關閉應用程序不會改變這一點。這取決於你正式停止服務。

捕獲位置更新並將它們存儲在數據庫中的業務邏輯應該在服務中實現,而不是在活動中實現。 (該活動可用於控制服務的狀態(停止 - 啓動),並顯示數據庫中的數據,但您的位置更新/存儲在數據庫邏輯中的大部分應該從服務中觸發。

你可以檢查你的Android設備上運行的服務(設置 - 應用程序 - 運行服務)。你應該看到你的服務,以及它的運行時間。

根據你的要求,一個簡單的服務不會削減它如果你例如你也想捕獲位置更新並將它們存儲在數據庫中,而設備正在睡眠,那麼你需要看看WakefullintentService

+0

如此有效,當我開始應用程序線程寫入數據庫將停止存儲位置。據我所知,線程將結束,因爲此線程需要事件onLocationChanged工作,位置不會更新,直到我回到該位置活動。這是否恰當?謝謝ddewaele! – Dayerman 2011-05-20 09:15:56