Не приходят пуш уведомления на андроид. Не приходят push-уведомления во Вконтакте на компьютере: проблемы и решения


В последние годы в России большую популярность набрали смартфоны китайской компании Xiaomi, характерной особенностью которых является фирменный интерфейс MIUI. Он обладает особенно глубокими настройками системы, недоступными для пользователей стандартных версий android.

Однако, несмотря на существенные преимущества, многие жалуются, что в xiaomi redmi note 3 не приходят уведомления - с чем это связано и как исправить проблему описано далее.

Почему в MIUI не приходят уведомления

Хотя MIUI кажется простым, удобным интерфейсом, но он кардинально отличается от обычного Android"а. Разработчики MIUI улучшили автономность смартфонов за счёт некоторых ограничений для пользовательских приложений (whatsapp, viber, vk и др.). Например, запреты на фоновые процессы, сетевые подключения и геолокацию значительно снижают нагрузку на центральный процессор, тем самым сокращая расход заряда батареи. Время автономной работы существенно продлевается.

Однако, из-за этого появился досадный недостаток. Пользователи заметили, что в смартфонах xiaomi иногда не приходят уведомления из любимых программ. Причем уведомлений нет, даже если приложение было запущено вручную. А если экран погаснет, то можно вообще забыть, что соцсети и другие сервисы должны присылать важные уведомления.

Поэтому многих буквально мучает вопрос, почему же так всё сложно и как включить уведомления в MIUI? Ради них пользователи легко готовы пожертвовать автономностью, лишь бы не терять необходимые оповещения. Чтобы решить эту проблему, надо провести комплексную перенастройку MIUI, т.к. волшебной кнопки «включить уведомления», увы, нет.

Фоновый режим (энергосбережение)

Один из пунктов глубокой настройки, который нужно ещё постараться найти. Рассмотрим на примере смартфона нашего сотрудника, у которого в redmi note 3 pro больше не приходят уведомления. Название меню может отличаться в зависимости от сборки MIUI, поэтому доверьтесь своей интуиции и ищите что-то похожее в настройках: Дополнительно, Производительность и батарея, Расход энергии приложениями. Там будет несколько режимов энергосбережения, из которых по умолчанию активен "Стандартный". Именно он блокирует доступ к сетевым подключениям и геолокации. Естественно, в таком глухом оффлайне приложения на xiaomi redmi вообще не могут показывать никаких уведомлений. Любопытно, что в таком режиме MIUI самостоятельно определяет, какие фоновые процессы блокировать, поэтому сложно предугадать, когда смогут прийти те или иные уведомления.

режимы экономии энергии xiaomi redmi 3s

Если вы нашли эти настройки, значит, тоже столкнулись с проблемой отсутствия оповещений в "Стандартном" режиме энергосбережения. На данном этапе есть 2 варианта действий.

  1. Можно просто отключить энергосбережение. Тогда MIUI должен начать работать, как обычный Android, когда ядро системы самостоятельно регулирует все фоновые процессы, права доступа, приоритеты и т.п. Теоретически, у всех приложений должен появиться полный доступ к фоновой активности, сети и т.п.
  2. Опытные пользователи могут поступить иначе. Установить максимальный уровень энергосбережения ("Повышенный"), а потом выборочно разблокировать только важные программы. Такая настройка требует буквально три минуты, но зато можно быть уверенным, что ресурсы смартфона будут выделяться только на действительно нужные пользователю процессы. Кстати, тогда можно также ограничить фоновую активность системных приложений Xiaomi, которые вряд ли очень востребованы отечественными пользователями.

Настройка типов уведомлений

Настройка фоновой активности приложений - это было всего лишь начало восстановления нормальной работы уведомлений. Мало кто знает, но интерфейс MIUI также позволяет управлять типами уведомлений от приложений.

Объясним на примере Facebook Messenger. Программа может показать уведомления о сообщениях в шторке или поменять на своём значке индикатор с числом непрочитанных сообщений. Однако, гораздо удобнее плавающее круглое окошко на рабочем столе, т.к. из шторки иногда нельзя открыть соответствующее сообщение. Если на телефоне есть один тип уведомлений, но не хватает другого, то проблема именно в ограничении этих самых типов.

Чтобы это исправить, надо в настройках открыть «Уведомления и вызовы», а там найти «Уведомления приложений». Далее будет список приложений, которым разрешены уведомления. Лишние можно отключить, а для нужных программ - настроить типы и приоритеты уведомлений. Именно тут активируются «Всплывающие уведомления» приложений, а также нормальный переход из шторки.

Автозапуск приложений

Это довольно важно, т.к. иногда включенный автозапуск действительно влияет на корректность работы некоторых приложений. Настроить автоматический запуск программ во время загрузки устройства можно через меню «Разрешения», «Автозапуск» в разделе «Безопасность».

Заходим, а затем устанавливаем нужные параметры. Желательно выставить автозапуск для всех важных приложений (соцсетей, мессенджеров и т.п.).

Закрепление приложений в ОЗУ

Это своеобразная фишка интерфейса MIUI. Начинающие пользователи о ней не сразу узнают. Суть в том, что можно выбрать приложения, которые всегда будут в оперативной памяти, даже если «закрыть все» через меню запущенных приложений. Это весьма полезная функция для закрепления в памяти мессенджеров, соцсетей (вконтакте) и «звонилки». Благодаря этому закрепленные приложения открываются практически мгновенно, интерфейс MIUI принудительно будет обеспечивать их работоспособность, защищая от непредвиденного закрытия. После перезагрузки смартфона все «закрепления» по-прежнему работают.

Для этого в меню запущенных программ нужно «смахнуть» вниз ярлык нужного приложения (то есть того, где наблюдается сбой работы уведомлений) и нажать на замок. На ярлыке должен появиться замочек, который означает, что приложение закреплено в ОЗУ. Чтобы отменить закрепление, нужно просто смахнуть ярлык вверх.

Оптимизация ОЗУ и WiFi

Кроме того, в разделе «Энергосбережение» меню настроек батареи может присутствовать опция периодической очистки ОЗУ. Эта функция убирает из оперативки Redmi Note лишние приложения, что позволяет ускорить работу устройства и сокращает расход заряда, однако, её желательно отключить при нестабильной ситуации с уведомлениями.

В настройках WiFi также желательно отключить оптимизацию, поскольку при блокировке или отключении экрана интерфейс MIUI может параллельно отключаться от беспроводных сетей, опять же для экономии заряда, но в ущерб удобству пользователей.

Надеемся эти советы помогут вам победить проблему с уведомлениями. Пишите в комментариях, что именно помогло вам справиться с данной проблемой.

Важным фактором безопасности является скорость реагирования на событии. Сообщение о событии или инциденте пришедшее на 10 минут позже или не пришедшее вовсе, в большинстве случаев лишает смысла все вложения в системы видеонаблюдения, охраны, контроля доступа, умного дома. Для , без собственного охранного персонала, мы всегда устанавливаем системы, контролируемые через смартфон или планшет, которые позволяют просматривать видео, управлять автоматикой, открывать и закрывать дверные замки и ворота, краны и прочие устройства. И часто приходится слышать, что приложение работает плохо, что-то делает, а уведомления не доставляет. Но это не всегда вина разработчика. Часто причина бывает в смартфоне, точнее в его операционной системе. Давайте починим Push уведомления.

За доставку сообщений на ваш телефон отвечает сервис доставки Push уведомлений от Google и операционная система, а дальше они передают сообщение приложению, которому оно предназначалось. На устройствах компании Apple обычно проблем не бывает, а вот на устройствах на базе Android доставка уведомлений сделана так, что разработчикам приложений стоит большого труда, чтоб заставить сообщения приходить и приходить вовремя, и им это не всегда удается. Собственно сам Android не препятствует доставке сообщений, проблемы возникают из-за того, что у каждого производителя есть куча собственных надстроек и «улучшений» базовой операционной системы.
Давайте разбираться.

Что делать если сообщения вообще не доставляются?

Вот несколько возможных причин:

  • Пользователь не зарегистрировал на телефоне ни один активный аккаунт Google;
  • Устаревшая версия Сервиса Google Play . Необходимо обновить её, для этого может потребоваться обновить и всю систему смартфона;
  • Выключены уведомления для приложения (галочка на страничке приложения в настройках телефона);
  • Ограничена работа приложения в фоновом режиме (настройка расположена в меню «Использование данных»);

Чтоб ваш приложение системы охраны, или например от WhatsApp, Telegram, Skype, Vider, получило сообщение, ваш телефон должен обратиться на сервер и проверить, если для него новое сообщение, забрать, если есть, и передать нужному приложению, чтоб оно уже отобразило. Это значит, что телефон постоянно должен держать соединение с интернетом, даже если лежит у вас в кармане. Это всё расходует батарею телефона, и многие производители, стараясь продлить время работы смартфона на одной зарядке, запрещают Push уведомления, или делают проверку очень редкой.

Итак, причины задержек Push сообщений стоит искать именно в «системах экономии энергии»(например, Stamina на устройствах Sony), «оптимизации приложений» и т.д. и тут каждый производитель смартфонов на базе Android выдумывает свой велосипед, и часто переделывает его от обновления к обновлению.

В этой статье мы постараемся собрать описания по отключению этих оптимизаций энергопотребления Push сообщений для разных телефонов.

Стоит сказать, что именно отключение Push уведомлений на энергопотреблении сказывается очень слабо, в сравнении с потреблением LTE или прожорливого приложения. Включение или отключение оптимизаций Push сообщений, изменяет срок работы смартфона на одной зарядке максимум на пару процентов.

Samsung Galaxy S6

Приложение, которое нам вредит на Samsung Galaxy S6 , называется . Это отдельное приложение, которое можно найти и в системных настройках.

В приложении Smart Manager, нужно нажать ОПЦИИ, в правом верхнем углу. «Настройка уведомлений». И включить переключатель «Ухудшение производительности». Название очень странное и путающее, с учетом того что производительность оно ухудшает именно в выключенном положении. Чтоб получать Push уведомления, положение переключателя должно быть как на картинке. Переключатель «Энергосбережение» особого эффекта не производит, но можно тоже включить.

На устройствах ASUS


  • На устройстве ASUS ZenFone 2 приложения могут не запуститься после перезагрузки устройства или выгрузки приложения из оперативной памяти устройства. Чтобы решить эту проблему, разрешите автоматический запуск для приложения в настройках Менеджера автозапуска.

На устройствах HUAWEI

могут быть следующие проблемы и пути их решения:

  • Если включен режим энергосбережения, всплывающие окна могут не отображаться. Чтобы решить эту проблему, добавьте приложение в список Защищенных приложений в Менеджере батареи.
  • Приложение может быть выгружено из оперативной памяти устройства средствами операционной системы. Чтобы решить эту проблему, закрепите приложение в оперативной памяти устройства с помощью Диспетчера приложений и добавьте его в список Защищенных приложений в Менеджере батареи.

На устройствах Meizu

могут быть следующие проблемы и пути их решения:

На устройствах Lenovo

могут быть следующие проблемы и пути их решения:

На устройствах Samsung

могут быть следующие проблемы и пути их решения:

  • Приложение может не запуститься после перезагрузки устройства. Чтобы решить эту проблему, разрешите автоматический перезапуск для него. Например, используйте приложение Smart Manager. Перейдите в Smart Manager > ОЗУ > Прил.Автозагр. и включите переключатель него.

На устройствах XIAOMI MIUI

могут быть следующие проблемы и пути их решения:

На устройствах ZTE

могут быть следующие проблемы и пути их решения:

Как закрепить приложение в оперативной памяти устройства

Откройте Менеджер задач. Например, нажмите и удерживайте среднюю кнопку, пока на экране не появится список всех запущенных приложений.
Найдите приложение.
Нажмите значок Замок рядом с названием приложения.
Значок Замка показывает, что приложение закреплено в оперативной памяти.

Push-уведомления представляют собой всплывающие окна, которые отображаются на экране смартфона или планшета. Они показывают входящую информацию из различных источников, в качестве которых могут выступать мессенджеры, приложения или система самого устройства. Пуши есть абсолютно на всех современных девайсах: будь то яблочные гаджеты или гугловские планшеты. То есть существуют Push-уведомления iOS, Android, а также .

Настройка push-уведомлений на устройствах под управлением операционных систем iOS, Android и Windows Phone

Последнее время особенно популярным стало внедрение этой функции в операционную систему компьютера. Первой стала компания Apple со своей осью для маков OS X. Связано это, конечно же, с высокой эффективностью и удобством работы пушов, которые зарекомендовали себя в качестве первого источника информации, поступающей на смартфон или планшет. Действительно, опровергать столь комфортный способ оповещения было бы глупо: push-уведомления экономят оперативную память устройства, так как они не требуют постоянной работы программы или приложения. Следовательно, будет также и трафик интернета.

Но помимо такой большой заботы о пользователе и своевременных оповещениях, push-уведомления могут быть раздражающими. Зачем вам периодически напоминание из или сервиса Twitter о том, что некий пользователь написал: «Поел сегодня омлет. Было вкусно»? Согласитесь, что это сообщение не несёт для вас полезной информационной нагрузки. Получается, что не все оповещения весьма полезны. Конечно, если вы без разбору открываете доступ и соглашаетесь отправлять вам извещения программам и приложениям, то у вас их будет миллионы. Не совсем приятно потом их удалять, ведь на некоторых системах нельзя удалить всё сразу. В связи с этим возникает необходимость в знании того, как настроить и отключить push-уведомления. Поэтому давайте разберёмся с правильной установкой этого способа подачи информации.

Кнопки регулировки громкости позволяют вам намного больше, чем просто увеличение или уменьшение громкости звука устройства. В это меню добавили совершенно новые опции и возможности, которые, несомненно, будут полезны любому пользователю. Они позволяют переключаться между режимами оповещений:

  1. «Не беспокоить» - все входящие напоминания и сообщения будут приходить без звука;
  2. «Важные» - вы будете получать только важные сообщения, из списка программ, который можно регулировать. При его включении вы увидите вкладку с настройками. В ней можно изменить время работы режима. Более того, там есть специальная вкладка, позволяющая более гибко настроить этот режим;
  3. «Все» - стандартная работа девайса.

Стоит отметить, что настроенные таким образом push-уведомления будут куда более полезны. Особенно удобным является режим «Важные», где можно легко управлять списком приложений для доступа к оповещениям.

Для более тонкой регулировки информационных окон достаточно перейти в специально отведённый для этого раздел. Он находится в меню «Настройки» вашего девайса. В нём вы сможете, например, убрать уведомления на экране блокировки, открыть возможность оповещения для отдельных программ, менять список заблокированных приложений. Также очень интересной возможностью является то, что в меню отдельного приложения вы можете по своему желанию выбрать:

  1. Не показывать из этого приложения, тем самым полностью избавиться от известий программы;
  2. Или же показывать их в верхней части списка, в том числе, когда разрешено получение только важных оповещений.

Включить или отключить push-уведомления на iOS можно с помощью меню настроек, расположенного на главном экране . Долго нужное подменю искать не придётся, ведь в операционной системе оно так и называется: «Уведомления». После того как вы перешли в него, справа вы увидите список установленных программ на устройстве. Над одними будет надпись «включать», а над другими будет написано «не включать». Это значит, что в первом случае оповещения и push-уведомления разрешены, а во втором, соответственно, нет. Рассмотрим подробный пример настройки.

Итак, входит у нас в первый список. Нажимаем туда и переходим на страницу настройки оповещений этой программы:

  1. Самым первым у нас стоит разрешение на уведомления с соответствующим ползунком. Если его сдвинуть, то вы их отключите. Соответственно, ни о чём оповещать Skype вас не будет;
  2. Следующий пункт у нас «В центре уведомлений». Он позволяет управлять количеством последних событий, отображаемых в баре нотификаций (то есть в центре уведомлений);
  3. Звуки. Этим ползунком вы регулируете наличие звукового сопровождения для оповещения;
  4. Наклейка на значке. Здесь вы можете регулировать наличие наклейки с числом входящих событий на иконке приложения, расположенной на главном экране;
  5. Предпоследняя настройка в этом меню - на заблокированном экране. Она отвечает за отображение оповещения тогда, когда экран планшета или смартфона заблокирован;
  6. Ну, и последним стоит стиль предупреждения на разблокированном экране. Первый с таким категоричным словом «Нет» убирает все визуальные уведомления. Баннеры - это строка в верхней части экрана. Ну, и «Предупреждения», которые высвечиваются прямоугольником в центре экрана с вариантами ответа. Собственно, они все наглядно показаны на странице настройки уведомлений.

У пользователей также может возникнуть вопрос: а почему не приходят push-уведомления? На самом деле причин может быть несколько:

  1. Как в примере iOS, программа может быть просто не включена в список разрешённых. Тогда вам нужно будет просто перейти в то же самое меню и, пролистав вниз, выбрать из категории «Не включать» необходимую программу. На её странице просто сдвинуть ползунок возле «Разрешить уведомления». На Андроиде ситуация аналогичная;
  2. Второй причиной может быть то, что для работы уведомлений приложению требуется наличие интернета.

Теперь вы разобрались, почему не приходят push-уведомления на Android или iOS, как их включить, настроить или вовсе отключить. Теперь вы будете получать только действительно важные сообщения, а назойливые игровые оповещения больше не будут вас доставать!

На написание данной статьи меня подтолкнула задача, которая была поставлена передо мной в одном из рабочих проектов: реализовать Push-уведомления в приложении. Казалось, все просто: штудируешь документацию, примеры и вперед. К тому же, опыт работы с уведомлениями уже был. Но не тут то было…

Сервис, в рамках которого реализовано приложение под Android, предъявляет довольно жесткие требования к работе Push-уведомлений. Необходимо в пределах 30-60 секунд оповестить пользователя о некотором действии. При успешном оповещении с устройства пользователя отправляется запрос на сервер с соответствующим статусом. Из документации известно, что сервис GCM (Google Cloud Messaging) не гарантирует доставку PUSH-уведомлений на устройства, поэтому в качестве backdoor варианта, при нарушении этих временных рамок, наш сервис уведомляет пользователя с помощью SMS сообщения. Поскольку стоимость SMS сообщения существенно выше чем PUSH-уведомления, необходимо максимально сократить поток SMS сообщений на клиентские устройства.

Проштудировав документацию и прикрутив пуш-уведомления, мы разослали нескольким клиентам первую сборку приложения для теста и стали ждать. Результаты были примерно следующими:

Некоторые клиенты писали, что испытывают задержки в доставке пушей, либо получали одновременно и PUSH и SMS, что достаточно не практично. Другие писали, что вовсе не получали уведомлений, а только SMS. У третьих, как и у нас на тестовых устройствах, все было ок. Собрав с недовольных клиентов максимально возможную информацию, стали разбираться в проблеме и вывели следующий список ограничений (этот список позже вылился в полноценный FAQ):
  • включенный режим Энергосбережения (например, Stamina на устройствах Sony) влияет на работу Push уведомлений;
  • у пользователя обязательно должен быть минимум 1 активный Google аккаунт на устройстве;
  • необходимо удостовериться в том, что на устройстве установлена актуальная версия приложения “Сервисы Google Play”;
  • проверить, не отключены ли уведомления для приложения (галочка на страничке приложения в настройках телефона);
  • проверить, не ограничена ли работа фонового режима для приложения (настройка расположена в меню «Использование данных»);
  • в документации к GCM указано, что уведомления рассылаются только по определенным портам, поэтому настройки роутера, файервола и антивируса так же стоит учитывать.
Разослав данную памятку по всем клиентам, мы снова стали ждать результатов. И они оказались снова «не очень». Стали копать дальше.

На данном этапе очень сильно помогла , написанная ребятами из Mail.ru. В ней очень подробно описаны тонкости реализации GCM на клиентской стороне, а так же моменты, в связи с которыми отказываются работать Push уведомления в мобильных сетях. В конечном счете было принято решение о том, чтобы держать свое соединение с сервером в связке с GCM.

Перед тем, как приступить к решению, стоить выделить несколько очень важных моментов, которые позволяют сузить круг потенциально «нерабочих» устройств:

  • проблема возникает только при подключении к мобильному интернету;
  • по данным клиентов, проблема возникает на версии андроида 4 и выше.
И так, перейдем к реализации.

Бывалый разработчик под Android сходу скажет, что решений задачи как минимум 2: использовать Service или AlarmManager. Мы попробовали оба варианта. Рассмотрим первый из них.

Для того, чтобы создать неубиваемый системой сервис, который постоянно будет висеть в фоне и выполнять нашу задачу, мы использовали метод:

StartForeground(int notificationID, Notification notification);
где

  • notificationId - некоторый уникальный идентификатор уведомления, который будет выведен в статус баре и в выезжающей шторке;
  • notification - само уведомление.
В данном случае обязательным условием является отображение уведомления в статус баре. Такой подход гарантирует то, что сервису будет дан больший приоритет (поскольку он взаимодействует с UI частью системы) в момент нехватки памяти на устройстве и система будет выгружать его одним из последних. Нам это уведомление не нужно, поэтому мы воспользовались следующим велосипедом: достаточно запустить одновременно с первым сервисом второй и для обоих сервисов в качестве notificationID использовать одно и тоже значение. Затем убить второй сервис. При этом уведомление пропадет из статус бара, но функциональные и приоритетные возможности первого сервиса останутся.

Реализовав данный подход, мы отправили сборку на тест. По результатам выяснилось, что система все-таки выгружает сервис, а по логам мы видели, как происходили существенные временные разрывы при запросе данных в фоне с нашего сервера. Поэтому приступили к реализации второго варианта - AlarmManager.

AlarmManager - это класс, который предоставляет работу с, грубо говоря, «будильником». Он позволяет указать время, по достижении которого система отправит широковещательное уведомление, которое позволит пробудить наше приложение и даст ему возможность выполнить необходимые действия. В работе этого метода есть некоторые ограничения, и их необходимо обработать:

  • данные о «будильниках» будут стерты после перезагрузки устройства;
  • данные о «будильниках» будут стерты после обновления приложения.
Первыми граблями, на которые мы наступили, был метод

SetRepeating()
который позволяет установить повторяющийся с некоторым интервалом «будильник». Прикрутив данный способ, стали тестировать, и тесты показали обратное - «будильник» не повторялся. Стали разбираться в чем дело, посмотрели документацию. И именно там нашли ответ на вопрос - начиная с 19 API lvl (Kitkat) абсолютно все «будильники» в системе стали разовыми. Вывод - всегда читайте документацию.

Эти грабли не были поводом для расстройства, ведь решение задачи довольно простое - запускать единоразовый «будильник» и после срабатывания переустанавливать его. При реализации этого подхода мы наткнулись на следующие грабли - оказалось, что для разных уровней API необходимо по разному устанавливать будильники, при этом в документации ничего сказано не было. Но данная проблема решилась достаточно просто - методом «тыка» и «гугления». Ниже представлен пример кода, позволяющий правильно устанавливать «будильники»:

Private static void setUpAlarm(final Context context, final Intent intent, final int timeInterval) { final AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); final PendingIntent pi = PendingIntent.getBroadcast(context, timeInterval, intent, 0); am.cancel(pi); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { final AlarmManager.AlarmClockInfo alarmClockInfo = new AlarmManager.AlarmClockInfo(System.currentTimeMillis() + timeInterval, pi); am.setAlarmClock(alarmClockInfo, pi); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) am.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timeInterval, pi); else am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timeInterval, pi); }
Хочу обратить внимание на флаг AlarmManager.RTC_WAKEUP - именно с помощью него система позволит нашему приложению «проснуться» при неактивном экране, когда устройство находится в заблокированном состоянии.

Данный подход с «будильникам» дал нам нужный результат - приложение в фоне корректно опрашивает сервер на наличие новых данных. Сейчас мы дорабатываем алгоритм. На данный момент реализуем и тестируем следующую оптимизацию, которая позволит сузить круг устройств и тем самым уменьшить нагрузку на сервер:

  • в сообщении, отправленном средствами GCM на устройство, содержится некоторый уникальный ID;
  • получив данные GET запросом в фоновом режиме проверяем, существуют ли уже запись с таким ID на устройстве;
  • если локально на устройстве таких данных нет, мы запоминаем этот ID и время его получения T1;
  • ждем PUSH с таким же ID, при получении запоминаем время T2 и проверяем разницу между T2 и T1;
  • если разница составляет больше некоторого временного критерия (значения), то на устройстве наблюдается проблема с доставкой уведомлений и для корректной работы сервиса необходимо постоянно запрашивать данные в фоновом режиме с сервера (критерий советую выбирать исходя из решаемой задачи. В нашем случае, был выбран критерий равный 5 минутам);
  • данную разницу стоит вычислять несколько раз, например 5-10 раз, только после этого делать вывод о том, что устройство действительно содержит проблему с получением Push уведомлений (таким образом исключается ситуация банального разрыва соединения, таймаута и пр.);
  • необходимо прогонять данный алгоритм периодически (например, раз в неделю, или после обновления ОС на устройстве).
Всем добра. И поменьше подобных костылей.

P.S.
В процессе тестирования очень помог







2024 © gtavrl.ru.