2

私はこのコードに従っています: How to get RegistrationID using GCM in android

しかし、受信したメッセージTextViewで更新したい。MainActivityサービスからUIを更新する方法がわからない理由を教えてください

4

1 に答える 1

6

ここではブロードキャスト レシーバーを使用することをお勧めします。そのIntentServiceため、イベントをブロードキャストし、すべてのアクティビティまたはその他の何かを登録できます。

それ自体のやり過ぎを避けるためにBroadcastReceivers(プロセス間通信で使用することを意図しており、やり過ぎやセキュリティリークになる可能性があるため)LocalBroadcastManager- http://developer.android.com/reference/android/support/v4/を使用することをお勧めしますcontent/LocalBroadcastManager.html . これは厳密にローカルなブロードキャストのヘルパーであり、処理を容易にし、パフォーマンスとセキュリティを向上させます。

アップデート:

GCM IntentService 内で LocalBroadcastReceiver を使用するには、次のようにする必要があります。

@Override
protected void onMessage(Context context, Intent intent) {
    Intent bIntent = new Intent("custom-event-name");
    // You can also include some extra data.
    bIntent .putExtra("message", intent); //or get some info from Gcm intent and put it into this one.
    LocalBroadcastManager.getInstance(context).sendBroadcast(bIntent);
} 

ここで、アクティビティ内でレシーバーを登録する方法を確認できます。とても簡単です。LocalBroadcastManager の使用方法は?

幸運を

于 2012-09-03T21:26:53.430 に答える