Как Android Oreo знает, что пришло сообщение FCM? - PullRequest
0 голосов
/ 30 октября 2018

Я знаю, что сообщения FCM отправляются на устройства, соответствующие FirebaseInstanceId.getInstance (). GetToken () и onMessageReceived (), сообщения FCM обрабатываются в соответствии с потребностями пользователя. Но если приложение не запущено и со всеми фоновыми ограничениями в Oreo, как ОС узнает, что пришло сообщение?

1 Ответ

0 голосов
/ 30 октября 2018

откуда ОС знает, что сообщение пришло?

Между телефоном и сервером FCM от Google установлено сокетное соединение. Это соединение используется всеми приложениями на телефоне, использующими FCM.
См. здесь

Когда вы просите FCM доставить сообщение на ваш телефон ABC и в приложение с идентификатором XYZ, сервер Google отправит некоторые данные на телефон ABC. Компонент FCM на телефоне затем находит приложение с идентификатором XYZ (он должен сначала найти правильное приложение, потому что это соединение может также получать данные для других приложений) и доставить сообщение идентификатору.

Это управляется Google, поэтому, естественно, процесс не страдает от фоновых ограничений, при условии, что вы установили правильный приоритет для своего сообщения FCM.

...