Android Oreo如何知道FCM消息已到达?

时间:2018-10-30 09:45:14

标签: android firebase-cloud-messaging android-notifications

我知道FCM消息将发送到与FirebaseInstanceId.getInstance()。getToken()对应的设备,并且在onMessageReceived()上会根据用户的需要处理FCM消息。但是,如果该应用程序未运行并且在Oreo中具有所有背景限制,那么操作系统如何知道消息已到达?

1 个答案:

答案 0 :(得分:1)

  

操作系统如何知道消息已到达?

电话与Google的FCM服务器之间存在套接字连接。此连接在使用FCM的电话上的所有应用之间共享。
请参见here

当您要求FCM向手机ABC和ID为XYZ的应用传递消息时,Google的服务器将向手机ABC发送一些数据。然后,电话上的FCM组件会找到ID为XYZ的应用程序(必须先查找正确的应用程序,因为此连接可能还会接收其他应用程序的数据),然后将消息传递给ID。

这是由Google管理的,因此假设您为FCM邮件设置了正确的优先级,该过程自然不会受到后台限制。