Я реализовал FCM в своем проекте. Push-уведомление работает так, как ожидается, onMessageReceived вызывается при получении уведомления. Это верно, когда приложение находится на переднем плане.FCM показывает дублирующее уведомление, когда приложение находится в фоновом режиме
Однако, когда приложение работает в фоновом режиме, в системном трее всегда отображать дубликат уведомления, когда один приходит (например, когда уведомлению принимается, система отображения лоток 2 Уведомление A)
Как это исправить?
EDIT: добавлен код
Я продлил FirebaseMessagingService
класс и иметь это в onMessageReceived
метод
Это единственная часть в проекте, где я NotificationManager.
Кроме того, я попытался добавить журнал этого метода. onMessageReceived вызывается, когда приложение находится на переднем плане. Он не вызван, когда приложение находится в фоновом режиме
@Override
public void onMessageReceived(RemoteMessage remoteMessage)
{
RemoteMessage.Notification notification = remoteMessage.getNotification();
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
PendingIntent.FLAG_ONE_SHOT);
String title = notification.getTitle();
String message = notification.getBody();
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(message)
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
Показывает, как вы создаете и показываете уведомления –
, когда приложение находится в фоновом режиме, автоматически генерирует уведомление, если оно находится в формате уведомлений по умолчанию. –
@VivekMishra означает, что система генерирует 2 одинаковых уведомления? или он получает 2 уведомления? Я смущен, почему, когда приложение находится на переднем плане, я получаю только уведомление, но когда в фоновом режиме он внезапно становится дублированным – kishidp