How to open an activity after receiving a PUSH notification in Android?

This example demonstrate about How to open an activity after receiving a PUSH notification in Android

Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.

Step 2 − Add the following code to src/MyFirebaseMessagingService.java

<span class="kwd">package</span><span class="pln"> app</span><span class="pun">.</span><span class="pln">tutorialspoint</span><span class="pun">.</span><span class="pln">com</span><span class="pun">.</span><span class="pln">notifyme </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">NotificationChannel</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">NotificationManager</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">PendingIntent</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Context</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Intent</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">support</span><span class="pun">.</span><span class="pln">v4</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">NotificationCompat</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">google</span><span class="pun">.</span><span class="pln">firebase</span><span class="pun">.</span><span class="pln">messaging</span><span class="pun">.</span><span class="typ">FirebaseMessagingService</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">google</span><span class="pun">.</span><span class="pln">firebase</span><span class="pun">.</span><span class="pln">messaging</span><span class="pun">.</span><span class="typ">RemoteMessage</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MyFirebaseMessagingService</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">FirebaseMessagingService</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd">   public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> NOTIFICATION_CHANNEL_ID </span><span class="pun">=</span><span class="pln"> </span><span class="str">"10001"</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">   private</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> default_notification_channel_id </span><span class="pun">=</span><span class="pln"> </span><span class="str">"default"</span><span class="pln"> </span><span class="pun">;</span>
<span class="lit">   @Override</span>
<span class="kwd">   public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onNewToken </span><span class="pun">(</span><span class="typ">String</span><span class="pln"> s</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd">      super</span><span class="pln"> </span><span class="pun">.</span><span class="pln">onNewToken</span><span class="pun">(</span><span class="pln">s</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pun">   }</span>
<span class="lit">   @Override</span>
<span class="kwd">   public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onMessageReceived </span><span class="pun">(</span><span class="typ">RemoteMessage</span><span class="pln"> remoteMessage</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd">      super</span><span class="pln"> </span><span class="pun">.</span><span class="pln">onMessageReceived</span><span class="pun">(</span><span class="pln">remoteMessage</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="typ">      Intent</span><span class="pln"> notificationIntent </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">()</span><span class="pln"> </span><span class="pun">, </span><span class="typ">MainActivity</span><span class="pun">.</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pln">      notificationIntent</span><span class="pun">.</span><span class="pln">putExtra</span><span class="pun">(</span><span class="pln"> </span><span class="str">"NotificationMessage"</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> </span><span class="str">"I am from Notification"</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pln">      notificationIntent</span><span class="pun">.</span><span class="pln">addCategory</span><span class="pun">(</span><span class="typ">Intent</span><span class="pun">.</span><span class="pln"> CATEGORY_LAUNCHER </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pln">      notificationIntent</span><span class="pun">.</span><span class="pln">setAction</span><span class="pun">(</span><span class="typ">Intent</span><span class="pun">.</span><span class="pln"> ACTION_MAIN </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pln">      notificationIntent</span><span class="pun">.</span><span class="pln">setFlags</span><span class="pun">(</span><span class="typ">Intent</span><span class="pun">.</span><span class="pln"> FLAG_ACTIVITY_CLEAR_TOP </span><span class="pun">| </span><span class="typ">Intent</span><span class="pun">.</span><span class="pln"> FLAG_ACTIVITY_SINGLE_TOP </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="typ">      PendingIntent</span><span class="pln"> resultIntent </span><span class="pun">=</span><span class="pln"> </span><span class="typ">PendingIntent</span><span class="pun">.</span><span class="pln"> getActivity </span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">()</span><span class="pln"> </span><span class="pun">, </span><span class="lit">0</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> notificationIntent </span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">; </span>
<span class="typ">      NotificationCompat</span><span class="pun">.</span><span class="typ">Builder</span><span class="pln"> mBuilder </span><span class="pun">= </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">NotificationCompat</span><span class="pun">.</span><span class="typ">Builder</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">()</span><span class="pln"> </span><span class="pun">, </span>
<span class="pun">         </span><span class="pln">default_notification_channel_id </span><span class="pun">)</span>
<span class="pun">         .</span><span class="pln">setSmallIcon</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">drawable</span><span class="pun">.</span><span class="pln"> ic_launcher_foreground </span><span class="pun">)</span>
<span class="pun">         .</span><span class="pln">setContentTitle</span><span class="pun">(</span><span class="pln"> </span><span class="str">"Test"</span><span class="pln"> </span><span class="pun">)</span>
<span class="pun">         .</span><span class="pln">setContentText</span><span class="pun">(</span><span class="pln"> </span><span class="str">"Hello! This is my first push notification"</span><span class="pln"> </span><span class="pun">)</span>
<span class="pun">         .</span><span class="pln">setContentIntent</span><span class="pun">(</span><span class="pln">resultIntent</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="typ">      NotificationManager</span><span class="pln"> mNotificationManager </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">NotificationManager</span><span class="pun">) </span><span class="pln">getSystemService</span><span class="pun">(</span><span class="typ">Context</span><span class="pun">.</span><span class="pln"> NOTIFICATION_SERVICE </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">      if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Build</span><span class="pun">.</span><span class="pln">VERSION</span><span class="pun">.</span><span class="pln"> SDK_INT </span><span class="pun">>=</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Build</span><span class="pun">.</span><span class="pln">VERSION_CODES</span><span class="pun">.</span><span class="pln"> O </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd">         int</span><span class="pln"> importance </span><span class="pun">=</span><span class="pln"> </span><span class="typ">NotificationManager</span><span class="pun">.</span><span class="pln"> IMPORTANCE_HIGH </span><span class="pun">;</span>
<span class="typ">         NotificationChannel</span><span class="pln"> notificationChannel </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span>
<span class="typ">         NotificationChannel</span><span class="pun">(</span><span class="pln"> NOTIFICATION_CHANNEL_ID </span><span class="pun">,</span><span class="pln"> </span><span class="str">"NOTIFICATION_CHANNEL_NAME"</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> importance</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pln">         mBuilder</span><span class="pun">.</span><span class="pln">setChannelId</span><span class="pun">(</span><span class="pln"> NOTIFICATION_CHANNEL_ID </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
         <span class="kwd">assert</span><span class="pln"> mNotificationManager </span><span class="pun">!=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">;</span>
<span class="pln">         mNotificationManager</span><span class="pun">.</span><span class="pln">createNotificationChannel</span><span class="pun">(</span><span class="pln">notificationChannel</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pun">      }</span>
<span class="kwd">      assert</span><span class="pln"> mNotificationManager </span><span class="pun">!=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">;</span>
<span class="pln">      mNotificationManager</span><span class="pun">.</span><span class="pln">notify</span><span class="pun">((</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="typ">System</span><span class="pun">.</span><span class="pln"> currentTimeMillis </span><span class="pun">()</span><span class="pln"> </span><span class="pun">,</span>
<span class="pln">      mBuilder</span><span class="pun">.</span><span class="pln">build</span><span class="pun">())</span><span class="pln"> </span><span class="pun">;</span>
<span class="pun">   }</span>
<span class="pun">}</span>

Click  here  to download the project code

Updated on: 2019-07-30T22:30:26+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements