本文介绍了如何停止将新的推送通知替换为Firebase中的旧推送通知?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我触发推送通知时,旧的将被新的替换.但是我希望它应该添加到该旧通知中.
When I trigger a push notification then the old one is replaced by new one. But I want it should add to that old notification.
我的MyFirebaseMessaging类为:
My MyFirebaseMessaging class is:
public class MyFirebaseMessaging extends FirebaseMessagingService {
String title="";
String message,type,click_action;
int no_of_messages;
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if(remoteMessage.getData().size()>0) {
message = remoteMessage.getData().get("body");
title = remoteMessage.getData().get("title");
click_action = remoteMessage.getData().get("click_action");
no_of_messages++;
ShowNotification(message);
}
else
Log.i("remoteMessage",message);
}
private void ShowNotification(String message) {
Intent intent = new Intent(click_action);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("loading_flag","load");
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
@SuppressLint("WrongConstant")
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_MAX);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]{0, 1000, 500, 1000});
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
}
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this,NOTIFICATION_CHANNEL_ID);
// if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// notificationBuilder.setSmallIcon(R.drawable.vadodaramunicipalcorporation);
// notificationBuilder.setColor(getResources().getColor(R.color.backgroundColor));
// } else {
// setSmallIcon(R.drawable.vadodaramunicipalcorporation)
// }
notificationBuilder.setSmallIcon(R.mipmap.vadodaramunicipalcorporation)
.setLargeIcon(BitmapFactory.decodeResource(getApplicationContext().getResources(), R.mipmap.vadodaramunicipalcorporation))
.setContentTitle("You have new "+ title)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setTicker("Hearty365")
.setContentInfo("Info")
.setContentText(message+" new Alerts")
.setNumber(no_of_messages)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setStyle(new NotificationCompat.BigTextStyle())
.setContentIntent(pendingIntent)
.setPriority(Notification.PRIORITY_MAX);
notificationManager.notify(0, notificationBuilder.build());
}
}
{
"to":"token-key",
"data" : {
"body" : "4",
"title" : "Alert",
"click_action" : "Activity.DATA_CLICK"
}
}
推荐答案
您需要在 notificationManager.notify()
You need to pas different notificationID
in notificationManager.notify()
示例代码
Date myDate = new Date();
int myNotificationId = Integer.parseInt(new SimpleDateFormat("ddhhmmss", Locale.US).format(myDate));
notificationManager.notify(myNotificationId,notificationBuilder.build());
这篇关于如何停止将新的推送通知替换为Firebase中的旧推送通知?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!