Service
Android 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()
Service
Context.startForegroundService()
参照:バックグラウンド実行の制限Android 8.0 (Oreo) 向け