-1

Androidの場合Oreoなぜbound servicesが許可されているのか(Started Services & IntentServices)は許可されません。Android Oreoのバックグラウンド実行制限からバインドされたサービスを維持する理由

私は自分の活動のoncreate()メソッドでバインドしていて、自分のアクティビティのondestroy()メソッドでバインドを解除しているとします。ユーザーがこのアクティビティに来て​​を押すと、app goes in backgroundが不定期になりました。このバインドされたサービスは、開発者がOreoから削除したいと思っていたリソースを使用するため、理由は何ですか?メモリリソースを浪費する可能性がある場合には、バインドされたサービスを維持し続ける

答えて

1

Android Oreoでは、(開始サービス& IntentServices)が許可されていないのに対して、バインドされたサービスがまだ許可されている理由を示します。

これらのサービスはすべて許可されています。しかし、開始されたフォアグランド以外のサービスは〜1分間しか実行できません。

は今、無期限に、このバウンドサービスは

リソースを使用するAndroidのは、しばらく前よりも異なるが、あなたのバックグラウンドプロセスを終了しません。純粋に束縛されたサービスはプロセスの重要性を高めません。開始されたサービスだけが行います。

ただし、バインドされたサービスのプロセスの重要度は、サービス自身のプロセスとバインドされたクライアントのプロセスの両方によって管理されます。そのため、バインドされたサービスはAndroid 8.0の変更によって直接影響を受けません—サービスの寿命は、サービス自体よりもクライアントによって支配されます。そのため、サービスがコアOSプロセス(例えば、NotificationListenerService)によってバインドされている場合、システムは、そのサービスがどれくらいの周りにある必要があるかを効果的に制御する。あなたのケースでは、クライアントとサービスは同じアプリと同じプロセスにあるため、プロセスはバックグラウンドで正常に終了することができます。

+0

docs時刻には1分、 'foreground以外のサービスは〜1分しか実行できません。私のサービスが1分もかからずに仕事を終えたら、問題なく使えますか? –

+1

@SudhanshuGaur:[docs](https://developer.android.com/about/versions/oreo/background.html#services)は「数分」と言っています。テストでは、約1分のようです。 – CommonsWare

+0

どのシナリオでは、バインドされたサービスは正常に終了しないでしょうか? –

関連する問題