6

ご存知のように、最近 Google は GCM のドキュメントを変更し、IntentService受信した GCM メッセージの処理に は不要になったと主張しています。すべての処理は で行うことができますBroadcastReceiver

を使い続ける正当な理由があるかどうかを調べようとしたとき、次の引用IntentServiceに出くわしました。

WakefulBroadcastReceiver が GCM メッセージを処理する作業を渡すサービス (通常は IntentService) で、プロセス中にデバイスがスリープ状態に戻らないようにします。IntentService を含めることはオプションです。代わりに、通常の BroadcastReceiver でメッセージを処理することを選択できますが、現実的には、ほとんどのアプリは IntentService を使用します

ほとんどのアプリが を使用するのはなぜIntentServiceですか? で GCM メッセージを直接処理できないシナリオはありますBroadcastReceiverか?

4

1 に答える 1

9

ほとんどのアプリが IntentService を使用するのはなぜですか?

ほとんどの場合、メッセージに応答して何をしていても、1 ~ 2 ミリ秒以上かかるため、メイン アプリケーション スレッドからその作業を取得する必要があります。ブロードキャストに応答してこれを行う一般的なパターンは、作業を に委譲することIntentServiceです。

したがって、GCM メッセージに対応する作業に以下が含まれる場合:

  • ディスク I/O
  • 追加のネットワーク I/O (例: Web サービスからの追加データの取得)
  • 実質的な計算 (画像処理など)

IntentServiceその作業を実行するためにを使用する可能性があります。

于 2013-08-24T00:17:17.613 に答える