Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
1

Обьясните работу сервисов в fcm

11.04.2018, 13:33. Просмотров 264. Ответов 7
Метки нет (Все метки)

Задался вопросом, как работают собственно push-уведомления. В Android, чтобы система с меньшей вероятностью убила сервис, нужно запускать его startGoreground, тогда уведомление будет постоянно висеть вверху. Например, аудиоплееры так работают. Если же мы не хотим видеть это уведомление, мы просто стартуем сервис и в onStartCommand возвращаем флаг START_STICKY, чтобы если вдруг сервис будет убит системой он будет восстановлен.
Собственно, вопрос в чем: push-уведомления приложений работают, когда сервис не висит в foreground, получается иногда сервис убивается и Push-уведомление не придет нам мгновенно, и Firebase допускает такой исход? Дело в том, что я делал как-то приложение с работой сервиса в фоне(не foreground), и там выполнялась некоторая работа, например запрос на сервер каждые 5 сек, и иногда система его вырубала ну скажем минуты на 2, иногда на 5, причем вырубала спустя рандомное количество секунд после запуска, например даже 5 секунд. Когда же я ставил сервис foreground, все работало нормально и сервис не вырубался.
Или все таки Firebase работает как-то по другому? Более того, интересно, как обстоит дело с новыми версиями Андроид(если не ошибаюсь, Android Oreo 8.0 уже накладывает ограничения на работу сервисов в background)?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2018, 13:33
Ответы с готовыми решениями:

FCM: не срабатывает onMessageReceived когда приложение прибито
Здравствуйте. Столкнулся с проблемой -- не срабатывает onMessageReceived когда приложение...

Обьясните работу peek();
Есть строчка в файле 5 The Early English Text Society Мне нужно достать число и сравнить с...

Обьясните работу цикла
Доброго времени суток! :thank_you: Прошу помощи :help: никак не могу понять последовательность...

Есть ли возможность у Zabbix мониторить работу сервисов apache, mysql, nginx?
Всем доброго времени суток! Сейчас занимаюсь выбором системы мониторинга, пока остановился на...

Обьясните работу лямбда-выражения без делегата
В данном коде: string s = Console.ReadLine(); var words = s.Split(new {' '},...

7
+1
324 / 157 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
12.04.2018, 10:36 2
Цитата Сообщение от danek130995 Посмотреть сообщение
Или все таки Firebase работает как-то по другому?
Вот при ручной отправке уведомления из консоли firebase
Обьясните работу сервисов в fcm

А как ты будешь его получать - дело твоё.
0
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
12.04.2018, 10:38  [ТС] 3
+1, так получаю же не я, а сервис firebase на смартфоне, который мониторит каким то образом новые уведомления
0
+1
324 / 157 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
12.04.2018, 11:03 4
Гугл мониторит вообще все действия пользователя, включая распознавание голоса, даже при спящем режиме смартфона, чтобы потом завалить тебя контекстной рекламой на основе твоих разговоров.
И как это всё устроено он, скорее всего, не скажет.
1
androbro
349 / 307 / 70
Регистрация: 17.10.2014
Сообщений: 907
12.04.2018, 11:09 5
danek130995, ну так в том и фишка что есть гугловый сервис, с определенными "привилегиями"(гугл может себе позволить), который периодически и обращается к firebase.
он делает это централизовано, следовательно это не так пагубно сказывается на зарядке телефона, если бы в каждом приложении это было реализовано своими силами.
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
12.04.2018, 11:56  [ТС] 6
androbro, так вот интересно, то, что "гугл может себе позволить", они это каким образом делают? Это не на уровне приложений? Т.е. у разработчика нет возможности реализовать похожее поведение, используя sdk? И данный сервис нельзя увидеть в списке приложений и например остановить его? Это где то на уровне прошивки работает и не видно для пользователя?
0
androbro
349 / 307 / 70
Регистрация: 17.10.2014
Сообщений: 907
12.04.2018, 15:09 7
Цитата Сообщение от danek130995 Посмотреть сообщение
так вот интересно, то, что "гугл может себе позволить", они это каким образом делают?
я лишь высказал свое предположение
Цитата Сообщение от danek130995 Посмотреть сообщение
И данный сервис нельзя увидеть в списке приложений и например остановить его?
я допустим вижу что среди запущенных приложений есть такой процесс "Службы Google", где один процесс и целых 11 служб. Кнопка "Стоп" конечно есть, для каждой из служб, но после ее нажатия они сразу же перезапускаются.
Вот среди них есть "GmcService", который, как мне кажется, и отвечает за доставку пушей.
0
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
21.04.2018, 16:34  [ТС] 8
androbro, а как же WhatsApp и Viber? Они же не гугловские приложения, но всегда как то способны принять вызов в backgroundе. Как они сделаны и почему их система не убивает?

Добавлено через 5 часов 24 минуты
androbro, задал вопрос на stackoverflow, там человек ответил:
Пуши от гугла обрабатываются гугл сервисами. Гугл сервисы -- это системное приложение, которое имеет бОльшие права, чем обычное приложение. Оно всегда висит в фоне. Вся сигнализация работает через пуши (и звонки в том числе). Разработчик может сделать свою систему сигнализации, но из-за всяких доз модов это все ненадежно. – post_zeew
0
21.04.2018, 16:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2018, 16:34

Использование Сервисов
Итак задача: 1. Сервис работает с неким сервером в сети и постоянно запрашивает у того некоторые...

Тестирование сервисов в Symfony
Как тестировать сервисы в Symfony? В приложении есть два варианта вызова сервисов - через контейнер...

База данных сервисов
Здравствуйте. Объясните пожалуйста,что такое база данных сервисов.Знаю что сервис получает к ней...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru