4

少し検索しましたが、GCM でのウェイクロックの真の機能について質問がありました。

ウェイクロックは、デバイスがネットワーク層のシャットダウンを妨げるスリープ モードに入るのを防ぎますか? 最初にネットワーク レベルから GCM メッセージを受信できるようにしますか?

または、GCM が有効で動作している場合 (マニフェストのアクセス許可、適切にコーディングされた GCM コードなどを介して)、GCM を起動するために Google へのネットワーク接続が確立され、画面を元に戻すために UI またはアプリケーション レベルからのみウェイクロックが必要になります。受け取った後、他のこと(ユーザーとのやり取りなど)を行うことができます。

または、上記のいずれでもない/一部 (詳しく説明してください:)

ありがとう

4

1 に答える 1

0

私によると、サービスを開始する前に CPU がスリープ状態にならないように、取得WAKE_LOCKしてから解放する必要があります。GCM Service

画面がオフになった後、しばらくすると CPU がスリープ モードになります。デバイスがスリープ モードの場合、スレッドは中断されます。

wake lock を取得して解除しないと、どうしてもバッテリーを大量に消費してしまいます。

デバイスがアイドル モードのときにGCMメッセージを受信できます。

メッセージが到着したときに、デバイスをスリープ解除して通知を表示するかどうかは、コードによって異なります。

flag を使用して、デバイスがアイドル状態から出るまでメッセージを遅らせることもできます delay_while_idle

BroadcastReceiverを登録することでメッセージを処理できます

SO に関する質問と回答を参照してください。

ディープスリープ中のウェイクロック

パワー管理

待機中の GCM

WAKE_LOCK

于 2013-08-12T08:21:33.950 に答える