私のプロジェクトでFCMを実装しました。プッシュ通知は期待どおりに機能しており、通知が受信されるとonMessageReceivedが呼び出されます。これは、アプリケーションがフォアグラウンドにある場合に当てはまります。アプリがバックグラウンドにあるときに一方が到着したときアプリがバックグラウンドのときにFCMが重複通知を表示
しかし、システムトレイは、常にこの問題を解決する方法(例えば、通知Aを受信した場合、システムトレイディスプレイ2通知A)
重複通知を表示しますか?
EDIT:追加コード
IはFirebaseMessagingService
クラスを拡張し、これは私がNotificationManagerを使用するプロジェクトに一部のみであるonMessageReceived
方法
でこれを持っています。
また、このメソッドにログを追加しようとしました。アプリがフォアグラウンドにあるときに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