title: Launch a fragment in my Android application from the notification bar
body: <p>How do I start a fragment in my Android application from a notification in the notification bar?</p>
  
  <p>I've tried to implement <a href="https://stackoverflow.com/a/16371303/956975">this answer</a> of creating my own action and then setting the action to the intent, but I'm unsure how to use it and what is required additionally - like adding something to the Manifest.</p>
  
  <p>I've got a notification class that receives a context, a message and then an action. I then want to filter on that action to determine which fragment to launch, but I don't know how to launch a fragment as opposed to launching an activity.</p>
  
  <p>Here is my Notifications.java class (incomplete):</p>
  
  <pre><code>public class Notifications {
  
      private Context mContext;
  
      public Notifications(Context context) {
          this.mContext = context;
      }
  
      public static void notify(Context context, String message, String  action) {
  
          //Action you invent should include the application package as a prefix — for example: "com.example.project.SHOW_COLOR".
          action = "my.package.name.here.frag."+action;
  
          //Construct a user message.
          String appName = context.getResources().getString(R.string.app_name);
  
          // Use the Notification manager to send notification
          NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
          // Create a notification using android stat_notify_chat icon. 
          Notification notification = new Notification(R.drawable.ic_stat_notification, message, 0);
  
          //Sound, lights, vibration.
          //REMEMBER PERMISSIONS.
          notification.defaults |= Notification.DEFAULT_SOUND;
          notification.defaults |= Notification.DEFAULT_VIBRATE;
          notification.defaults |= Notification.DEFAULT_LIGHTS;
  
          // Create a pending intent to open the application when the notification is clicked.
          //Restart the app.
          Intent launchIntent = null;
  
          //Get the action and based on what the action is, launch the application displaying the appropriate fragment.
          if (action.equalsIgnoreCase("friend")){
              //New friend notification
              //Launch application displaying the list of friends
  
  
          }
          if (action.equalsIgnoreCase("article")){
              //New article has been posted
              //Launch application displaying the news feed fragment
  
  
          }
          if (action.equalsIgnoreCase("points")){
              //Points scored notification
              //Launch application displaying the user's profile
  
  
          }
          if (action.equalsIgnoreCase("redeemable")){
              //New redeemable is offered
              //Launch application displaying the list of redeemables
  
  
          }
          if (!action.equalsIgnoreCase("friend") 
                  &amp;&amp; !action.equalsIgnoreCase("article") 
                  &amp;&amp; !action.equalsIgnoreCase("points") 
                  &amp;&amp; !action.equalsIgnoreCase("redeemable")){
              //Not specific, so launch the application from scratch displaying the activity feed
  
              launchIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
          }
  
  
  
          if(action != null &amp;&amp; launchIntent != null){         
              launchIntent.setAction(action);         
          }
  
          // Set the notification and register the pending intent to it
          notification.setLatestEventInfo(context, appName, message, pendingIntent);
  
          // Trigger the notification
          notificationManager.notify(0, notification);
      }
  
  }
  </code></pre>