接收消息

要接收消息,请使用扩展 FirebaseMessagingService 的服务并覆盖 onMessageReceived 方法。

public class MyFcmListenerService extends FirebaseMessagingService {
    
    /**
     * Called when message is received.
     *
     * @param remoteMessage Object representing the message received from Firebase Cloud Messaging.
     */
    @Override
    public void onMessageReceived(RemoteMessage message) {
        String from = message.getFrom();

        // Check if message contains a data payload.
        if (remoteMessage.getData().size() > 0) {
            Log.d(TAG, "Message data payload: " + remoteMessage.getData());
            Map<String, String> data = message.getData();
        }

        // Check if message contains a notification payload.
        if (remoteMessage.getNotification() != null) {
            Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
        }

        //.....
    }

当应用程序处于后台时,Android 会将通知消息定向到系统托盘。用户点按通知会默认打开应用启动器。

这包括包含通知和数据有效负载的消息(以及从 Notifications 控制台发送的所有消息)。在这些情况下,通知将传递到设备的系统托盘,并且数据有效负载将在启动器活动的附加内容中传递。

这里简短回顾一下:

应用状态 通知 数据
foreground onMessageReceived onMessageReceived onMessageReceived
background 系统托盘 onMessageReceived 通知:系统托盘
数据:意图的额外内容。