0

私は初めてC2DMを使用しており、次のことを実現するための一般的なアドバイスを探しています。C2DMメッセージを受信すると、次のことを決定します。-アプリケーションが現在のアクティビティにある場合、「アラートポップアップ」が表示されます。-アプリケーションが開いていない場合は、通知バーにメッセージを送信したい(新着メール、SMS、Twitterなどと同様)

GlobalBroadcastReceiver extends BroadcastReceiver実装 するがありますpublic void onReceive(Context context, Intent intent)。これはに登録されている唯一の受信機AndroidManifest.xmlです。
したがって、基本的にすべてのブロードキャストはこのレシーバーを介してパイプされ、最初のシナリオは問題ありません。

しかし、私は、2番目の問題にどのように取り組むのか疑問に思っています。アプリケーションが閉じている場合でも、C2DM.RECEIVEブロードキャストを確実に受信するにはどうすればよいですか。また、受信データについてユーザーに通知するにはどうすればよいですか。

すでにたくさんの解決策があると確信していますが、それらを見つけることができなかったので、全体像の何かが欠けているだけだと思います。

4

1 に答える 1

3

アプリケーションが閉じている場合でも、C2DM.RECEIVEブロードキャストを確実に受信するにはどうすればよいですか。

C2DMのドキュメントに従って、レシーバーをマニフェストに登録します。

次に:受信データについてユーザーに通知するにはどうすればよいですか?

を上げますNotification

受信者は、フォアグラウンドで自分のアクティビティがあるかどうかを必ずしも認識しないため、最善の解決策は、自分のブロードキャストを送信するIntentことですが、注文されたものを送信することです。BroadcastReceiverアクティビティに自分のブロードキャストの優先度を高く登録させ、別のマニフェスト登録者に自分のブロードキャストBroadcastReceiverの通常の優先度を実装させBroadcastReceiverます。アクティビティがブロードキャストを取得すると、ポップアップ(ick)が表示され、ブロードキャストが中止されます。「バックストップ」BroadcastReceiverがブロードキャストを取得すると、が表示されますNotification。これは、このパターンについてもう少し詳しく説明したブログ投稿です。これは、順序付けられたブロードキャストのこの使用法を示すサンプルプロジェクトです。

于 2012-04-27T14:52:33.253 に答える