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