[この記事は Laurence Moroney、デベロッパー アドボケートによる Android Developers Blog の記事 "How Google Cloud Messaging handles Doze in Android 6.0 Marshmallow" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

アプリで Google Cloud Messaging (GCM) が使用されている場合、Doze モード中のデバイスに対する以下の動作を考慮する必要があります。
GCM には、2 つの優先度「高」と「標準」があります。「高」を使用している場合、GCM はすぐにメッセージを届けようとし、必要に応じて Doze モードからデバイスを起こします。Android Marshmallow でも、この点は同じです。
ただし、「標準 (デフォルト)」が使用されている場合、Doze モードでは以下のようなさまざまな動作が発生します。
- 最も重要な変更は、Doze モードのデバイスにメッセージがバッチ処理されることです。メンテナンス待ちウィンドウの状態になると、メッセージを一括受信します。
- Doze モード中は time to liveの期限切れのメッセージ (TTL=0 を含む) は、破棄されます。
どうしても必要でない限り、バッテリーへの影響を考慮し優先度は「標準」にしておくことを推奨しています。同期は、上述のとおり Doze モード中、そして当然ながら Doze 終了時に実行されます。
優先度「高」は、チャット アプリの通知や電話の着信など、エンド ユーザーに対して即時に通知を生成する必要があるアプリケーションでのみ使用すべきです。
GCM メッセージングの優先度に関する詳細は、Google デベロッパーサイトをご覧ください。
Posted by Eiji Kitamura - Developer Relations Team