2017-09-28 106 views
2

我正在開發一個應用程序在android studio中,我必須保存設備的位置,我做了一個「locationService」類來擴展服務,所以位置被分割在我的服務器和服務將在後臺。 我已閱讀android文檔,並有兩種類型的服務(服務和鏈接服務),我使用鏈接服務,因爲我需要在活動中顯示位置數據。Android應用程序在後臺

問題是,當我關閉應用程序,服務死亡,並沒有記錄位置的變化。

如何防止鏈接服務死亡。謝謝

+0

請注意。 https://stackoverflow.com/a/3856940/6759520 – amuyu

回答

0

我假設你的意思是「綁定」Service,而不是「鏈接」Service。當最後一個客戶端與它斷開連接時,綁定的Service將停止運行。爲了防止這種情況發生,您需要致電startService()並確保您在Service中從onStartCommand()返回START_STICKY

您無需使用「綁定」Service即可將Service中的數據傳遞給Activity。另一種方法是讓您的Service廣播數據(將數據作爲「額外」添加到Intent中,並使用Intent調用sendBroadcast())。然後您的Activity可以設置BroadcastReceiver來收聽Service的任何數據播放。

+0

謝謝。 正確的術語是bundle,我已經在我的應用程序中實現了它,它工作正常,現在我想實現另一個功能,在後臺我可以啓動一個活動並顯示所需的信息,但是當我最小化應用程序時家裏,我不關閉它),我給你發送新的信息,我想把我的應用程序放在前臺顯示這些信息。 –

+0

我假設你的意思是「綁定」,而不是「捆綁」。當你想把你的應用程序推到前臺時,只需爲你的應用程序獲取一個「啓動意圖」,然後用這個函數調用'startActivity()'。它會將你的應用程序推向前臺,以便你可以做你想做的事。請參閱https://stackoverflow.com/a/14137045/769265 –

+0

謝謝。 我已經實現了這個方法,它已經工作了,現在我有另一個問題,在我的服務中我有一個布爾變量,開始的值爲true,並從我的應用程序我命令它變爲false,但是當我關閉應用程序,將服務作爲重新啓動發生並且我的變量返回到初始值(true)。 有一些方法我的服務不會「重新啓動」。 –

相關問題