Context.startForegroundService() は Service.startForeground() を呼び出さなかった 質問する

Context.startForegroundService() は Service.startForeground() を呼び出さなかった 質問する

ServiceAndroid O OSでClassを使用しています。

Serviceをバックグラウンドで使用する予定です。

Android ドキュメントと述べています

アプリが API レベル 26 以上をターゲットとしている場合、アプリ自体がフォアグラウンドでない限り、バックグラウンド サービスの使用または作成にはシステムによる制限が課せられます。アプリでフォアグラウンド サービスを作成する必要がある場合、アプリは を呼び出す必要がありますstartForegroundService()

を使用するとstartForegroundService()Service次のエラーがスローされます。

Context.startForegroundService() did not then call
Service.startForeground() 

これの何が問題なのですか?

ベストアンサー1

GoogleのドキュメントよりAndroid 8.0の動作の変更:

システムでは、アプリがバックグラウンドにある場合でも、アプリが Context.startForegroundService() を呼び出すことができます。ただし、アプリはサービスが作成されてから 5 秒以内にそのサービスの startForeground() メソッドを呼び出す必要があります。

解決策:使用するものについてstartForeground()問い合わせるonCreate()ServiceContext.startForegroundService()

参照:バックグラウンド実行の制限Android 8.0 (Oreo) 向け

おすすめ記事