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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Oreo如何知道FCM消息已经到来?相关的知识,希望对你有一定的参考价值。

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

答案

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

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

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

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

以上是关于Android Oreo如何知道FCM消息已经到来?的主要内容,如果未能解决你的问题,请参考以下文章

让您的应用兼容 Android Oreo

Firebase(FCM)如何获取令牌

Whatsapp 和即时消息应用程序如何在没有 Oreo 持续通知的情况下在后台工作?

FCM android客户端随机停止接收数据消息

FCM 上游消息传递的可靠性如何?

FCM通知交付报告