1

写真について話し合うチャットアプリケーションに取り組んでいます。c2dmメッセージを受信すると、ペイロードにはメッセージと、このメッセージの内容を識別するmd5が含まれます。一致するmd5を持つChatActivityがフォアグラウンドにある場合、サウンドのみを再生したいと思います。そうでない場合は、通知バーに通知を追加したいと思います。

これはwhatsappの場合と同じ動作です。これを実装する方法は?

4

1 に答える 1

2

既存のマニフェストを C2DM メッセージに登録することに加えて、C2DM メッセージを受信するように登録しChatActivityます。デフォルトは 0 であるため、in で使用する に正の値を使用させます。 in または を使用し、 inまたはを使用します。BroadcastReceiverBroadcastReceiverIntentFilterChatActivityregisterReceiver()setPriority()registerReceiver()onResume()onStart()unregisterReceiver()onPause()onStop()

その結果、C2DM メッセージが到着したときにChatActivity、フォアグラウンドにある場合は、優先度が高いため、最初にメッセージが取得されます。メッセージがその画像に関するものかどうかを確認できます。そうである場合、 はを呼び出して、標準優先度ChatActivityのマニフェストに登録された受信者がブロードキャストを取得できないようにすることができます。したがって、マニフェストに登録されたレシーバーブロードキャストを取得した場合、フォアグラウンドに関連がないことがわかり、 .BroadcastReceiverabortBroadcast()ChatActivityNotification

以下は、このほとんどを示すサンプル アプリです。ブロードキャストは C2DM ではなく、アプリ自体から送信されますが、残りの構造はほとんど同じです。

于 2012-08-05T21:20:14.247 に答える