我正在構建一個類似於Runtastic/Endomondo/Strava的應用程序,它需要獲取GPS位置的服務,直到用戶停止它的顯示。如何防止系統終止我的'前臺'服務?
我跑Runtastic和我的應用程序來嘗試它。 Runtastic很好。但是我的應用程序丟失了通知在狀態欄中的所有數據。我認爲服務會自行重啓,或者Android會終止我的服務。
我在LG G3上測試了應用程序,配備2GB內存,我認爲它足夠運行Runtastic和我的應用程序。
所以,我的問題是¿保持服務在後臺運行,或避免系統殺死它的最佳方式是什麼?我想模仿Runtastic/Endomondo/Strava的邏輯。這意味着,電池壽命並不重要。
我試着
START_STICKY
標誌啓動該服務的方法onStartCommand
。我試圖用
startForeground
方法來啓動服務我已經試過AQUIRE一個
WakeLock
繼文檔(https://developer.android.com/guide/topics/processes/process-lifecycle.html)我的服務應該是 'A可見的過程'。
這裏是我服務的代碼要點:https://gist.github.com/cpalosrejano/cc1ab73c4819c3e84234f2d619421b93
¿我應該聲明服務作爲的Manifest.xml過程?
'startForeground'應該做的訣竅,如果你正確實施它 –
@VladMatvienko我已經使用它。但我的服務被系統殺死。請你可以看看要點嗎?也許我犯了一個錯誤。不管怎麼說,還是要謝謝你! – cpalosrejano
好吧,它不顯示你如何開始你的服務 –