web-dev-qa-db-ja.com

居眠りモードは、部分的/完全なウェイクロックの有無にかかわらず、バックグラウンド/フォアグラウンドサービスにどのように影響しますか?

これは簡単な質問です。G+( here )にこれに関する膨大な投稿があり、情報が不足していることがわかります。公式ドキュメント( here ):

デバイスが「居眠り」モードになると、アプリのサービスはどうなりますか?

部分的/完全なウェイクロックの有無にかかわらず、バックグラウンド/フォアグラウンドサービス(バウンド/アンバウンド、開始/未開始)に対して何をしますか?

たとえば、デバイスの画面がオフになっているときにオーディオストリームを再生するサービスを作成するには、どうしますか?オーディオストリームがローカルファイルからではなく、ネットワークからのものである場合はどうなりますか?

グーグル開発者による主張があったのを見て:

フォアグラウンドサービス(関連する通知を含む)を実行しているアプリは、居眠りによって制限されません。

-それでもその後の多くの議論は、これが完全に真実ではないと主張して、特別なバックグラウンド操作アプリが何をすべきかを知ることは非常に混乱していると思います。

20

現在実行中のフォアグラウンドサービスがあるプロセスは、Dozeの影響を受けないはずです。バウンド/アンバウンド、開始/未開始、およびウェイクロックは、このホワイトリストプロセスに影響を与えません。

ただし、 問題 on Android Mデバイスでは、フォアグラウンドサービスがトップアクティビティと同じプロセスにあり、不適切に居眠りしている場合、フォアグラウンドサービスが適切にホワイトリストに登録されません。 。

修正は利用可能です AOSP上 そしてAndroid Nのビルドに含まれます。そのパッチを任意のAndroid Mビルドが生成されます。

15
ianhanniballake