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

问题描述 投票:0回答:1

我知道FCM消息被发送到与FirebaseInstanceId.getInstance()。getToken()相对应的设备,而onMessageReceived()则根据用户的需要处理FCM消息。但是如果应用程序没有运行并且在Oreo中具有所有后台限制,操作系统如何知道消息已经到达?

android firebase-cloud-messaging android-notifications
1个回答
1
投票

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

手机和谷歌的FCM服务器之间有一个套接字连接。此连接在使用FCM的手机上的所有应用之间共享。 见here

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

这是由谷歌管理,所以假设您为FCM消息设置了正确的优先级,过程自然不会受到后台限制。

© www.soinside.com 2019 - 2024. All rights reserved.