I am using Firebase notification in my android app. Generating notification using below code :
public class FirebaseNotificationService extends FirebaseMessagingService {
private static final String TAG = FirebaseNotificationService.class.getSimpleName();
private String strTitle = "My Notification";
private String strMessage = "No Description";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (Prefrences.getBooleanValue(getApplicationContext(), IS_LOGIN) && Prefrences.getBooleanValue(getApplicationContext(), Prefrences.IS_NOTIFICATION)) {
if (remoteMessage.getData().get("title") != null) {
strTitle = remoteMessage.getData().get("title");
}
if (remoteMessage.getData().get("message") != null) {
strMessage = remoteMessage.getData().get("message");
}
sendNotification(strTitle, strMessage);
}
}
private void sendNotification(String strTitle, String messageBody) {
try {
if (!getTopActivity().equals("com.app.activity.NotificationActivity")) {
Intent intent = new Intent(this, DashboardActivity.class);
intent.putExtra("notification", "yes");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.app_icon)
.setContentTitle(strTitle)
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(++NOTIFICATION_ID /* ID of notification */, notificationBuilder.build());
} else {
Intent intent = new Intent();
intent.setAction("load_service");
sendBroadcast(intent);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public String getTopActivity() {
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
return taskInfo.get(0).topActivity.getClassName();
}
}
The issue is multiple notification on status bar is generating instead of single, for the Same notification sent from the backend.
i have taken NOTIFICATION_ID as a static integer in my constant file. and i am incrementing it for differnt notification.
What might be the issue ?