title: firebase notification can not show in notification bar
body: <p>I am working on the app and programmatically hide the app icon from the application drawer. I am using firebase notification for that and when I tap on the notification it gives this error.</p>
  
  <pre><code>W/FirebaseMessaging: No activity found to launch app
  </code></pre>
  
  <p>What should I do?</p>
  
  <p>In my manifest file launcher set on mainActivity and the app icon hidden code is also in main activity.</p>
  
  <pre><code>  &lt;activity android:name=".MainActivity"&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;
  </code></pre>
  
  <p>The mainactivity.java</p>
  
  <pre><code>  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      PackageManager p = this.getPackageManager();
      ComponentName componentName = new ComponentName(this,MainActivity.class);
      p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
      setContentView(R.layout.activity_main);
  }
  </code></pre>
  
  <p>secondActivity.java as below...</p>
  
  <pre><code>   private static final String TAG = MainActivity.class.getSimpleName();
  private BroadcastReceiver mRegistrationBroadcastReceiver;
  private TextView txtMessage,txtRegId;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_second);
  
      txtMessage= (TextView) findViewById(R.id.message);
      txtRegId= (TextView) findViewById(R.id.regId);
  
      mRegistrationBroadcastReceiver = new BroadcastReceiver() {
          @Override
          public void onReceive(Context context, Intent intent) {
  
              // checking for type intent filter
              if (intent.getAction().equals(Config.REGISTRATION_COMPLETE)) {
                  // gcm successfully registered
                  // now subscribe to `global` topic to receive app wide notifications
                  FirebaseMessaging.getInstance().subscribeToTopic(Config.TOPIC_GLOBAL);
  
                  displayFirebaseRegId();
  
              } else if (intent.getAction().equals(Config.PUSH_NOTIFICATION)) {
                  // new push notification is received
  
                  String message = intent.getStringExtra("message");
  
                  Toast.makeText(getApplicationContext(), "Push notification: " + message, Toast.LENGTH_LONG).show();
  
                  txtMessage.setText(message);
              }
          }
      };
  
      displayFirebaseRegId();
  }
  
  private void displayFirebaseRegId() {
      SharedPreferences pref = getApplicationContext().getSharedPreferences(Config.SHARED_PREF, 0);
      String regId = pref.getString("regId", null);
  
      Log.e(TAG, "Firebase reg id: " + regId);
  
      if (!TextUtils.isEmpty(regId))
  //            Toast.makeText(this, "Firebase Reg Id: "+ regId, 
  Toast.LENGTH_SHORT).show();
          txtRegId.setText("Firebase Reg Id: " + regId);
      else
  //            Toast.makeText(this, "Firebase Reg Id is not received yet!", 
  Toast.LENGTH_SHORT).show();
          txtRegId.setText("Firebase Reg Id is not received yet!");
  }
  
  @Override
  protected void onResume() {
      super.onResume();
  
      // register GCM registration complete receiver
      LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
              new IntentFilter(Config.REGISTRATION_COMPLETE));
  
      // register new push message receiver
      // by doing this, the activity will be notified each time a new message arrives
      LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
              new IntentFilter(Config.PUSH_NOTIFICATION));
  
      // clear the notification area when the app is opened
      NotificationUtils.clearNotifications(getApplicationContext());
  }
  
  @Override
  protected void onPause() {
      LocalBroadcastManager.getInstance(this).unregisterReceiver(mRegistrationBroadcastReceiver);
      super.onPause();
  }
  </code></pre>
  
  <p>MyFirebaseMessagingService.java...</p>
  
  <pre><code>public class MyFirebaseMessagingService extends FirebaseMessagingService {
  
  private static final String TAG = MyFirebaseMessagingService.class.getSimpleName();
  
  private NotificationUtils notificationUtils;
  
  @Override
  public void onMessageReceived(RemoteMessage remoteMessage) {
      Log.e(TAG, "From: " + remoteMessage.getFrom());
  
      if (remoteMessage == null)
          return;
  
      // Check if message contains a notification payload.
      if (remoteMessage.getNotification() != null) {
          Log.e(TAG, "Notification Body: " + remoteMessage.getNotification().getBody());
          handleNotification(remoteMessage.getNotification().getBody());
      }
  
      // Check if message contains a data payload.
      if (remoteMessage.getData().size() &gt; 0) {
          Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString());
  
          try {
              JSONObject json = new JSONObject(remoteMessage.getData().toString());
              handleDataMessage(json);
          } catch (Exception e) {
              Log.e(TAG, "Exception: " + e.getMessage());
          }
      }
  }
  
  private void handleNotification(String message) {
      if (!NotificationUtils.isAppIsInBackground(getApplicationContext())) {
          // app is in foreground, broadcast the push message
          Intent pushNotification = new Intent(Config.PUSH_NOTIFICATION);
          pushNotification.putExtra("message", message);
          LocalBroadcastManager.getInstance(this).sendBroadcast(pushNotification);
  
          // play notification sound
          NotificationUtils notificationUtils = new NotificationUtils(getApplicationContext());
          notificationUtils.playNotificationSound();
      }else{
          // If the app is in background, firebase itself handles the notification
      }
  }
  
  private void handleDataMessage(JSONObject json) {
      Log.e(TAG, "push json: " + json.toString());
  
      try {
          JSONObject data = json.getJSONObject("data");
  
          String title = data.getString("title");
          String message = data.getString("message");
          boolean isBackground = data.getBoolean("is_background");
          String imageUrl = data.getString("image");
          String timestamp = data.getString("timestamp");
          JSONObject payload = data.getJSONObject("payload");
  
          Log.e(TAG, "title: " + title);
          Log.e(TAG, "message: " + message);
          Log.e(TAG, "isBackground: " + isBackground);
          Log.e(TAG, "payload: " + payload.toString());
          Log.e(TAG, "imageUrl: " + imageUrl);
          Log.e(TAG, "timestamp: " + timestamp);
  
  
          if (!NotificationUtils.isAppIsInBackground(getApplicationContext())) {
              // app is in foreground, broadcast the push message
              Intent pushNotification = new Intent(Config.PUSH_NOTIFICATION);
              pushNotification.putExtra("message", message);
              LocalBroadcastManager.getInstance(this).sendBroadcast(pushNotification);
  
              // play notification sound
              NotificationUtils notificationUtils = new NotificationUtils(getApplicationContext());
              notificationUtils.playNotificationSound();
          } else {
              // app is in background, show the notification in notification tray
              Intent resultIntent = new Intent(getApplicationContext(), secondActivity.class);
              resultIntent.putExtra("message", message);
  
              // check for image attachment
              if (TextUtils.isEmpty(imageUrl)) {
                  showNotificationMessage(getApplicationContext(), title, message, timestamp, resultIntent);
              } else {
                  // image is present, show notification with image
                  showNotificationMessageWithBigImage(getApplicationContext(), title, message, timestamp, resultIntent, imageUrl);
              }
          }
      } catch (JSONException e) {
          Log.e(TAG, "Json Exception: " + e.getMessage());
      } catch (Exception e) {
          Log.e(TAG, "Exception: " + e.getMessage());
      }
  }
  
  /**
   * Showing notification with text only
   */
  private void showNotificationMessage(Context context, String title, String message, String timeStamp, Intent intent) {
      notificationUtils = new NotificationUtils(context);
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
      notificationUtils.showNotificationMessage(title, message, timeStamp, intent);
  }
  
  /**
   * Showing notification with text and image
   */
  private void showNotificationMessageWithBigImage(Context context, String title, String message, String timeStamp, Intent intent, String imageUrl) {
      notificationUtils = new NotificationUtils(context);
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
      notificationUtils.showNotificationMessage(title, message, timeStamp, intent, imageUrl);
  }
  </code></pre>
  
  <p>I want to redirect to the secondActivity, when I tap op notification... help me..</p>
  
  <p>Thanks in advance....</p>