写真について話し合うチャットアプリケーションに取り組んでいます。c2dmメッセージを受信すると、ペイロードにはメッセージと、このメッセージの内容を識別するmd5が含まれます。一致するmd5を持つChatActivityがフォアグラウンドにある場合、サウンドのみを再生したいと思います。そうでない場合は、通知バーに通知を追加したいと思います。
これはwhatsappの場合と同じ動作です。これを実装する方法は?
写真について話し合うチャットアプリケーションに取り組んでいます。c2dmメッセージを受信すると、ペイロードにはメッセージと、このメッセージの内容を識別するmd5が含まれます。一致するmd5を持つChatActivityがフォアグラウンドにある場合、サウンドのみを再生したいと思います。そうでない場合は、通知バーに通知を追加したいと思います。
これはwhatsappの場合と同じ動作です。これを実装する方法は?
既存のマニフェストを C2DM メッセージに登録することに加えて、C2DM メッセージを受信するように登録しChatActivity
ます。デフォルトは 0 であるため、in で使用する に正の値を使用させます。 in または を使用し、 inまたはを使用します。BroadcastReceiver
BroadcastReceiver
IntentFilter
ChatActivity
registerReceiver()
setPriority()
registerReceiver()
onResume()
onStart()
unregisterReceiver()
onPause()
onStop()
その結果、C2DM メッセージが到着したときにChatActivity
、フォアグラウンドにある場合は、優先度が高いため、最初にメッセージが取得されます。メッセージがその画像に関するものかどうかを確認できます。そうである場合、 はを呼び出して、標準優先度ChatActivity
のマニフェストに登録された受信者がブロードキャストを取得できないようにすることができます。したがって、マニフェストに登録されたレシーバーがブロードキャストを取得した場合、フォアグラウンドに関連がないことがわかり、 .BroadcastReceiver
abortBroadcast()
ChatActivity
Notification
以下は、このほとんどを示すサンプル アプリです。ブロードキャストは C2DM ではなく、アプリ自体から送信されますが、残りの構造はほとんど同じです。