接收消息
要接收消息,请使用扩展 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 |
通知:系统托盘 |
数据:意图的额外内容。 |