title: Show push notifications when application open/closed in different way
body: <p>In my app I've a several Activities that inherit from one BaseActivity.<br/>
  My application receive push notification with <code>GCMBaseIntentService</code><br/>
  I need to implement the next logic:<br/>
  When push received if the application is open show dialog, if closed show notification.</p>
  
  <p>My code:</p>
  
  <pre><code>    public class GCMIntentService extends GCMBaseIntentService {
  
  ----------------------- other code ----------------------------------------
  
      @Override
          protected void onMessage(Context context, Intent intent) {
              Log.d(TAG, "onMessage : " + String.valueOf(intent));
  
              // This is how to get values from the push message (data)
              String payload = intent.getExtras().getString("payload");
              String message = "";
              String messageID;
  
              if (payload.contains("{")) {
                  try {
                      JSONObject jsonArray = new JSONObject(payload);
  
                      message = jsonArray.get("Msg").toString();
                      messageID = jsonArray.get("MessageID").toString();
  
                      GA_Handler.sendEvent("Popup_Push", String.format("Push message %s", messageID));
  
                  } catch (Exception ex) {
                      // Do nothing
                  }
              } else {
                  message = payload;
              }
  
              // special intent with action we make up
              Intent pushReceivedIntent = new Intent(ACTION_PUSH); 
              // place old extras in new intent
              pushReceivedIntent.putExtras(intent.getExtras());
              // find out if there any BroadcastReceivers waiting for this intent
              if (context.getPackageManager().queryBroadcastReceivers(pushReceivedIntent, 0).size() &gt; 0) {
                  // We got at least 1 Receiver, send the intent
                  context.sendBroadcast(pushReceivedIntent);
              } else {
                  // There are no receivers, show PushNotification as Notification
                  // long timestamp = intent.getLongExtra("timestamp", -1);
                  NotificationManager notificationManager = (NotificationManager) context
                          .getSystemService(Context.NOTIFICATION_SERVICE);
                  Notification note = new Notification(R.drawable.ic_launcher, "MYAPP", System.currentTimeMillis());
                  Intent notificationIntent = new Intent(context, SplashActivity.class);
                  notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
  
                  PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
                  note.setLatestEventInfo(context, "MYAPP", message, pendingIntent);
                  note.number = count++;
                  note.defaults |= Notification.DEFAULT_SOUND;
                  note.defaults |= Notification.DEFAULT_VIBRATE;
                  note.defaults |= Notification.DEFAULT_LIGHTS;
                  note.flags |= Notification.FLAG_AUTO_CANCEL;
  
                  notificationManager.notify(0, note);
              }
          }
  ----------------------- other code ----------------------------------------    }
  </code></pre>
  
  <p>In my BaseActivity:</p>
  
  <pre><code>@Override
      protected void onResume() {
          super.onResume();
  
          //register as BroadcastReceiver for Push Action
          IntentFilter filter = new IntentFilter();
          filter.addAction(GCMIntentService.ACTION_PUSH);
  
          mReceiver = new BroadcastReceiver() {
              @Override
              public void onReceive(Context context, Intent intent) {
                DialogFragmentUtils.getNotification("Notification", "Notification");
              }
            };
            registerReceiver(mReceiver, filter);
      }
  
      @Override
      protected void onPause() {
          super.onPause();
          FragmentManager fm = getSupportFragmentManager();
          for (int i = 0; i &lt; fm.getBackStackEntryCount(); ++i) {
              fm.popBackStack();
          }
  
          //unregister broadcast receiver
          unregisterReceiver(mReceiver);
      }
  </code></pre>
  
  <p>I always receive the notifications.<br/>
  When I debug the <code>context.getPackageManager().queryBroadcastReceivers(pushReceivedIntent, 0).size()</code> always equals to 0.</p>
  
  <p>Can someone tell me what I'm doing wrong?</p>