-1

我懷疑如果我使用報警管理器啓動定期服務並從活動的onCreate方法啓動服務。如果一次又一次啓動該服務,我該如何防止服務多次觸發。Android定期後臺服務

+0

你能顯示代碼嗎? – AADProgramming

回答

0

假設你正在創建一個普通Service(而不是IntentService),按了Android Servicedocumentation,當應用程序調用startService電話,服務將被實例化和啓動(如果需要爲它創造的過程)。

另外,如果它正在運行,那麼它仍然在運行。

所以,把它簡單地說,「開始」的服務

生命週期是獨立於已啓動該服務 活動的生命週期。這是真實的,不論 天氣都在同一進程或不同進程中運行

因此,即使您的Activity可能會得到創建多次,如果Service之前創建仍在運行,則服務對象已經存在意志被重用。

但是,如果有onCreate()startService()調用Activity,這將每次調用onStartCommand()

因此,你需要確保你有適當的代碼/邏輯,因爲我明白你必須做在任的onCreate /在onStart和的onStop或的onResume和onPaused東西來處理onStartCommand()