Activity Listener - Google Cloud Messaging - BroadcastReceiver

Ich habe GCM in meiner Android-Anwendung implementiert und es funktioniert gut mit dem Empfang von Nachrichten. Der BroadcastReceiver wird gemäß den Beispielen von Google in der Manifest-Datei eingerichtet.

Meine Frage lautet wie folgt: Wenn der Benutzer die Anwendung geöffnet hat und ich einige Ergebnisse in dieser Ansicht aktualisieren möchte - wie kann dies erfolgen? Ich dachte zuerst daran, diese Aktivität als Listener auf dem BroadCastReceiver zu registrieren, was auch immer der BroadCastReceiver empfängt. Dies muss jedoch eine statische Liste von Listenern sein, da eine neue Instanz von BroadcastReceiver eingerichtet wird. Dies ist jedoch möglicherweise nicht der richtige Weg.

Das ist es, was ich derzeit habe

        public class GCMBroadcastReceiver extends WakefulBroadcastReceiver  {

            @Override
            public void onReceive(Context context, Intent intent) {
                ComponentName comp = new ComponentName(context.getPackageName(),
                        GCMIntentService.class.getName());
                startWakefulService(context, (intent.setComponent(comp)));
                setResultCode(Activity.RESULT_OK);
            }
        }


        public class GCMIntentService extends IntentService {
            public static final int NOTIFICATION_ID = 1;
            private NotificationManager mNotificationManager;
            NotificationCompat.Builder builder;

            public GCMIntentService() {
                super("GCMIntentService");
            }

            @Override
            protected void onHandleIntent(Intent intent) {
                Bundle extras = intent.getExtras();
                GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
                String messageType = gcm.getMessageType(intent);

                if (!extras.isEmpty()) {
                   if (GoogleCloudMessaging.
                            MESSAGE_TYPE_MESSAGE.equals(messageType)) {

                     /** How to check if the activity 
GameActivity is running, and hence send an 
update signal to it? If it's not running a 
notification should be created.
    **/
                   }
                }
                GCMBroadcastReceiver.completeWakefulIntent(intent);
            }
        }

Hier ist der wichtige Teil dafür in der Manifest-Datei:

       <receiver
            android:name="q.w.e.gcm.GCMBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" >
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />

                <category android:name="q.w" />
            </intent-filter>
        </receiver>

        <service android:name="q.w.e.gcm.GCMIntentService" />

Irgendein Rat?

Vielen Dank!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage