繁体   English   中英

当应用程序在前台时不显示通知

[英]Notification not showing when app is in foreground

我在扩展FirebaseMessagingServiceFirebaseNotificationService类的onMessageReceived方法中添加了此代码

Notification notification = new NotificationCompat.Builder(this)
            .setContentTitle(remoteMessage.getNotification().getTitle())
            .setContentText(remoteMessage.getNotification().getBody())
            .setSmallIcon(R.mipmap.ic_launcher)
            .build();
    NotificationManagerCompat manager = NotificationManagerCompat.from(getApplicationContext());
    manager.notify(123, notification);

但是,当应用程序在前台时通知不起作用,但仅当应用程序在后台时才起作用。

AndroidManifest.xml使用此权限:

<service android:name="com.codb.shoppingapp.utils.FirebaseNotificationService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSANGING_EVENT" />
        </intent-filter>
    </service>

尝试在通知上设置通知频道 ID。 Android O 需要通知渠道。如果您忽略它,通知将不会显示。

https://developer.android.com/training/notify-user/channels

FCM 有两种消息类型:当您的应用程序在后台时。

  • 通知讯息: 在此处输入图片说明

  • 数据信息: 在此处输入图片说明

    1. 通知消息:通知发送到设备的系统托盘,而不是 onMessageReceived

    2. 数据消息:始终,通知传递到 onMessageReceived 作为图像

因此,当应用程序处于后台或前台时,您应该发送格式为数据消息以处理 onMessageReceived 中的通知

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM