2017-06-01 70 views
5

從我的活動onCreate()startService()拋出java.lang.IllegalStateException

我想開始通過下面的代碼服務:

Intent intent = new Intent(); 
intent.setClassName(SERVICE_PKG_NAME, SERVICE_NAME); 
context.startService(intent); //context = MainActivity.this 

不過,我收到以下異常:

java.lang.IllegalStateException:不允許啓動服務意圖(服務名稱):應用程序在後臺

任何想法這可能是什麼原因?現在停留幾個小時。

+1

您正在測試哪種Android版本?另外,你可以發佈整個Java堆棧跟蹤嗎? – CommonsWare

+0

它是否適用於'getApplicationContext()。startService(intent)'? – tynn

+0

@tynn沒有嘗試過..still同樣的錯誤.. –

回答

1

對於涉及需要從前臺應用程序調用後臺程序服務的情況下,我們可以按照順序:先

  • 調用bindService()
  • 後OnServiceConnected()由於綁定呼叫
  • 調用StartService()。
+0

所以這必須是一個綁定服務? –

+0

那麼,如何啓動一項服務來響應Firebase通知? –

+0

@DanielF我認爲最好使用JobScheduler。您可以指定要啓動的作業,基於某些條件,如Charger Connected等。https://developer.android.com/reference/android/app/job/JobScheduler.html –

相關問題