我知道FCM消息被发送到FirebaseInstanceId.getInstance((.getToken((对应的设备,在onMessageReceived((上,FCM消息根据用户的需要进行处理。但是,如果应用程序没有运行,而且奥利奥有所有的背景限制,操作系统怎么知道消息已经到达?
操作系统如何知道消息已到达?
手机和谷歌的FCM服务器之间有一个套接字连接。此连接在手机上使用FCM的所有应用程序之间共享
请参阅此处
当你要求FCM向你的手机ABC和id为XYZ的应用程序发送消息时,谷歌的服务器会向手机ABC发送一些数据。然后,手机上的FCM组件找到id为XYZ的应用程序(它必须首先查找正确的应用程序,因为该连接可能还会接收其他应用程序的数据(,并将消息传递给id。
这是由谷歌管理的,所以假设你为你的FCM消息设置了正确的优先级,这个过程自然不会受到背景限制。