我知道FCM消息将发送到与FirebaseInstanceId.getInstance()。getToken()对应的设备,并且在onMessageReceived()上会根据用户的需要处理FCM消息。但是,如果该应用程序未运行并且在Oreo中具有所有背景限制,那么操作系统如何知道消息已到达?
答案 0 :(得分:1)
操作系统如何知道消息已到达?
电话与Google的FCM服务器之间存在套接字连接。此连接在使用FCM的电话上的所有应用之间共享。
请参见here
当您要求FCM向手机ABC和ID为XYZ的应用传递消息时,Google的服务器将向手机ABC发送一些数据。然后,电话上的FCM组件会找到ID为XYZ的应用程序(必须先查找正确的应用程序,因为此连接可能还会接收其他应用程序的数据),然后将消息传递给ID。
这是由Google管理的,因此假设您为FCM邮件设置了正确的优先级,该过程自然不会受到后台限制。