Push-уведомления Android не приходят, когда приложение закрыто

Я следовал примеру в репозитории PushSharp по адресу: Пример клиента PushSharp для Android

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

Мое предположение заключалось в том, что, поскольку PushHandlerService помечен как [Service], он останется открытым, даже когда приложение будет закрыто, и продолжит прослушивание уведомлений. Есть ли способ продолжать получать уведомления с закрытым приложением, или я просто делаю это неправильно?

Я бы включил код, но то, что у меня есть, взято в точности из примера по ссылке выше.

РЕДАКТИРОВАТЬ:

Я попытался запустить PushClient.Register при запуске приложения, даже если устройство уже зарегистрировано, в надежде, что это запустит PushHandlerService, если оно не было запущено. Даже с перерегистрацией при каждом запуске приложения я все равно не получаю уведомления, когда приложение закрывается.


person jdehlin    schedule 18.10.2013    source источник


Ответы (4)


Вы пробовали это в режиме отладки или в режиме выпуска? Я испытал то же самое, когда запустил свое приложение в режиме отладки.

person Roosevelt    schedule 21.10.2013
comment
Это мне очень помогло. Я не видел, чтобы push-уведомление приходило, когда я смахивал свое приложение, но когда я попробовал в конфигурации сборки выпуска, это сработало отлично! - person irreal; 21.05.2015
comment
Спасибо за отзыв @irreal - person Roosevelt; 21.05.2015
comment
После комментирования debuggable true в моей конфигурации сборки gradle я смог получать уведомления на своем S8, когда приложение было закрыто и очищено от последних приложений. Спасибо за совет! - person Westy92; 26.09.2018

Итак, оказывается, что на некоторых устройствах Android батарея или настройки защищенных приложений приводят к тому, что уведомление не отображается. Например, на устройствах Huawei EMUI при переходе к настройкам защищенных приложений и включении защищенного переключателя приложение получает push-уведомление даже после закрытия приложения.

person Alish Giri    schedule 01.11.2020

Такое поведение может зависеть от конкретного устройства. Я испытал то же самое с устройствами Huawei, использующими EMUI. Можно решить это, изменив настройки экономии заряда батареи.

См. этот вопрос: Удаленные push-уведомления и закрытые приложения

person jn-se    schedule 21.06.2017

Если вы хотите, чтобы ваша служба продолжала работать, даже если приложение было убито, вам следует добавить следующее в тег службы в файле AndroidManifest.xml.

android:stopWithTask="false"

OR

Если вы используете GCM для push-уведомлений и хотите запустить службу при получении уведомления, вам необходимо зарегистрировать свою службу в качестве получателя GCM в файле AndroidManifest.xml. Вы можете сделать это, добавив следующий код

<service
    android:name=".yourPushService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
    </intent-filter>
 </service>
person Waleed Hassan    schedule 26.10.2018