2011-03-28 22 views
0

在我正在開發的一個應用程序中,我正在註冊服務中的位置更新。那是更好的方式嗎?應用程序邏輯是這樣的,服務將在應用程序之前處於活動狀態。在服務中註冊位置更新還是在Android版Activity中更好?

我有時遇到問題,比如一旦服務運行並且位置更新正常工作。但是大約4-5小時後,位置更新自動停止,所以它讓我相信系統會在一段時間後自動停止服務。如果我在這裏錯了,請糾正我。

在這種情況下,我將不得不從活動註冊位置偵聽器而不是服務。有人能告訴我我是否正確理解它嗎?

回答

0

但大約4-5小時後,位置更新自動停止,所以它使我相信服務在一段時間過後會自動停止。

這聽起來像是onStartCommand()需要return START_STICKY,這應該保持在你的服務,直到它明確停止(請確保您的用戶都知道,這個持續運行服務將導致增加消耗了電池,視你所有的服務是什麼)。

在這種情況下,我將不得不從活動而不是服務註冊位置監聽器。

當在Activity的上下文中註冊任何監聽器時,監聽器只有在Activity具有用戶焦點時才能正確運行(請參閱Managing the Application Lifecycle)。當你的活動暫停或被殺害時,你的聽力也是如此;遠程服務是更好的選擇。

相關問題