title: FCM : onMessageReceived is not called,notification didn't came even after sending msg to fcm?
body: <p>i am developing an app where i want to implement FCM push notifications through php.</p>
  
  <p>So i made two java files: 
  1.FirebaseInstanceID (Working fine and getting token properly in database)
  2.FirebaseMessagingSerivice (Not Called)</p>
  
  <p><strong>My FirebaseMessagingService.java</strong></p>
  
  <pre><code>package com.example.xyz;
  
  import android.app.NotificationManager;
  import android.app.PendingIntent;
  import android.content.Intent;
  import android.support.v4.app.NotificationCompat;
  import com.google.firebase.messaging.RemoteMessage;
  
  public class FirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingService{
  
  @Override
  public void onMessageReceived(RemoteMessage remoteMessage) {
  
      showNotification(remoteMessage.getData().get("message"));
  }
  
  private void showNotification(String message) {
  
      Intent i = new Intent(this,Dashboard.class);
      i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  
      PendingIntent pendingIntent = PendingIntent.getActivity(this,0,i,PendingIntent.FLAG_UPDATE_CURRENT);
  
      NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
              .setAutoCancel(true)
              .setContentTitle("FCM Test")
              .setContentText(message)
              .setSmallIcon(R.drawable.common_google_signin_btn_icon_dark)
              .setContentIntent(pendingIntent);
  
      NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
  
      manager.notify(0,builder.build());
  }
  }
  </code></pre>
  
  <p><strong>My result when i run my php script to send message to FCM:</strong></p>
  
  <pre><code> {\"multicast_id\":7077449602201888040,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1465110073498648%d215149df9fd7ecd\"}]}
  </code></pre>
  
  <p>But still i don't get any notification and all the configurations like api key,package name (in fcm console,my project) are checked and they are fine.</p>
  
  <p>When i debug the app by creating breakpoint at onMessageReceived() in FirebaseMessagingService.java, it doesn't go through that and app runs normally when message is pushed through php script to fcm server.</p>
  
  <p><strong>My Dashboard.java</strong></p>
  
  <pre><code>public class Dashboard extends AppCompatActivity {
  
  private Toolbar toolbar;
  private DrawerLayout drawer_layout;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_dashboard);
  
      toolbar=(Toolbar) findViewById(R.id.app_bar);
      setSupportActionBar(toolbar);
      getSupportActionBar().setDisplayShowHomeEnabled(true);
  
      drawer_layout=(DrawerLayout) findViewById(R.id.drawer_layout);
      NavigationDrawerFragment drawerfragment= (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
      drawerfragment.setUp(R.id.fragment_navigation_drawer,drawer_layout,toolbar);
  
  
      FirebaseMessaging.getInstance().subscribeToTopic("test");
      FirebaseInstanceId.getInstance().getToken();
  
  }
  </code></pre>
  
  <p>But My dashboard activity contains a fragment over it.I don't that whether it may be a problem.</p>
  
  <p><strong>AndroidManifest.xml</strong></p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.noticeboard"
  android:versionCode="1"
  android:versionName="1.0" &gt;
  &lt;uses-sdk
  android:minSdkVersion="14"
  android:targetSdkVersion="23" /&gt;
  &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
  &lt;application
  android:name=".MyApplication"
  android:allowBackup="true"
  android:icon="@drawable/ic_launcher"
  android:label="@string/app_name"
  android:theme="@style/AppTheme" &gt;
  &lt;activity
      android:name=".Dashboard"
      android:label="@string/title_activity_dashboard" &gt;
  &lt;/activity&gt;
  &lt;activity
      android:name=".SplashScreen"
      android:label="@string/title_activity_splash_screen" &gt;
      &lt;intent-filter&gt;
          &lt;action android:name="android.intent.action.MAIN" /&gt;
          &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
      &lt;/intent-filter&gt;
  &lt;/activity&gt;
  &lt;activity
      android:name=".Login"
      android:label="@string/title_activity_login" &gt;
  &lt;/activity&gt;
  &lt;activity
      android:name=".NoticeViewer"
      android:label="@string/title_activity_notice_viewer" &gt;
  &lt;/activity&gt;
  &lt;service
      android:name=".FirebaseMessagingService"&gt;
      &lt;intent-filter&gt;
          &lt;action android:name="com.google.firebase.MESSAGE_EVENT"/&gt;
      &lt;/intent-filter&gt;
  &lt;/service&gt;
  &lt;service
      android:name=".FirebaseInstanceIDService"&gt;
      &lt;intent-filter&gt;
          &lt;action android:name="com.google.firebase.INSTANCE_ID_EVENT"/&gt;
      &lt;/intent-filter&gt;
  &lt;/service&gt;
  &lt;/application&gt;
  &lt;/manifest&gt;
  </code></pre>
  
  <p><strong>LOGCAT</strong></p>
  
  <pre><code>06-05 12:06:05.678 32386-32386/com.example.noticeboard W/ActivityThread: Application com.example.noticeboard is waiting for the debugger on port 8100...
  06-05 12:06:05.686 32386-32386/com.example.noticeboard I/System.out: Sending WAIT chunk
  06-05 12:06:05.892 32386-32393/com.example.noticeboard I/art: Debugger is active
  06-05 12:06:05.897 32386-32386/com.example.noticeboard I/System.out: Debugger has connected
  06-05 12:06:05.897 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:06.107 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:06.317 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:06.527 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:06.587 32386-32393/com.example.noticeboard W/art: Suspending all threads took: 41.152ms
  06-05 12:06:06.741 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:06.947 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:07.157 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:07.368 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:07.577 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:07.786 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:07.998 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle... 
  06-05 12:06:08.208 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:08.418 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle...
  06-05 12:06:08.628 32386-32386/com.example.noticeboard I/System.out: waiting for debugger to settle... 
  06-05 12:06:08.838 32386-32386/com.example.noticeboard I/System.out: debugger has settled (1466)
  06-05 12:06:08.884 32386-32386/com.example.noticeboard W/System: ClassLoader referenced unknown path: /data/app/com.example.noticeboard-1/lib/x86
  06-05 12:06:08.906 32386-32386/com.example.noticeboard D/FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
  06-05 12:06:08.918 32386-32386/com.example.noticeboard D/FirebaseApp: Initialized class com.google.firebase.iid.FirebaseInstanceId.
  06-05 12:06:08.919 32386-32386/com.example.noticeboard D/FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
  06-05 12:06:08.943 32386-32386/com.example.noticeboard I/FA: App measurement is starting up, version: 9080
  06-05 12:06:08.943 32386-32386/com.example.noticeboard I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
  06-05 12:06:09.022 32386-32386/com.example.noticeboard D/FirebaseApp: Initialized class com.google.android.gms.measurement.AppMeasurement.
  06-05 12:06:09.022 32386-32386/com.example.noticeboard I/FirebaseInitProvider: FirebaseApp initialization successful
  06-05 12:06:09.045 32386-32456/com.example.noticeboard W/GooglePlayServicesUtil: Google Play services out of date.  Requires 9080000 but found 8087470
  06-05 12:06:09.130 32386-32457/com.example.noticeboard D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
  
  06-05 12:06:09.134 32386:32386 D/         ]
                                                                       HostConnection::get() New Host Connection established 0xabe6ce00, tid 32386
  06-05 12:06:09.141 32386-32386/com.example.noticeboard W/FA: Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null}
  
  [ 06-05    12:06:09.188 32386:32457 D/         ]
                                                           HostConnection::get() New Host Connection established 0xabe6cff0, tid 32457
  06-05 12:06:09.193 32386-32457/com.example.noticeboard I/OpenGLRenderer: Initialized EGL, version 1.4
  06-05 12:06:09.215 32386-32457/com.example.noticeboard W/EGL_emulation: eglSurfaceAttrib not implemented
  06-05 12:06:09.215 32386-32457/com.example.noticeboard W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xa3e6ca80, error=EGL_SUCCESS
  06-05 12:06:17.473 32386-32394/com.example.noticeboard W/art: Method processed more than once: void java.lang.Thread.run()
  06-05 12:06:17.474 32386-32395/com.example.noticeboard W/art: Method processed more than once: void java.lang.Object.wait(long)
  06-05 12:06:17.474 32386-32395/com.example.noticeboard W/art: Method processed more than once: void java.lang.Thread.run()
  06-05 12:06:17.478 32386-32396/com.example.noticeboard W/art: Method processed more than once: void java.lang.Thread.run()
  06-05 12:06:32.514 32386-32457/com.example.noticeboard W/EGL_emulation: eglSurfaceAttrib not implemented
  06-05 12:06:32.514 32386-32457/com.example.noticeboard W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xa24ff280, error=EGL_SUCCESS
  06-05 12:06:32.624 32386-32457/com.example.noticeboard E/Surface: getSlotFromBufferLocked: unknown buffer: 0xabee3340
  06-05 12:06:32.656 32386-332/com.example.noticeboard D/FirebaseInstanceId: topic sync succeeded
  </code></pre>
  
  <p>Thanks in Advance!</p>