Intereting Posts
Проблема с покупкой InApp для Android (-1002: получен неправильный ответ) Gradle Warning "не указано, зависит от библиотек, но является банкой" при компиляции модуля android в пользовательском модуле java-библиотеки Что делать, если ОС убила IntentService? Android SQLite ORDER BY не работает Умение читать по электронной почте Android Создание Android-приложения от муравья через проблему Хадсона – курица и яйцо Наложение над ImageView на Android Что означает @hide в исходном коде Android? Используя OKHttp, в чем разница между синхронным запросом в AsyncTask и OKhttp Asynchronous request? Android: открывайте ссылки в Play Store из приложения PhoneGap Все библиотеки com.android.support должны использовать ту же самую спецификацию версии Android: ошибка привязки данных: не удается найти класс символов Как определить мою позицию больше не отображается на карте (после навигации)? Создание изображения с помощью специального текста в Android Динамически изменять значения colors.xml, чтобы изменить внешний вид приложения android.

Уведомления GCM push на Android 3.1: отключить широковещательный приемник

Проблема с андроидными push-уведомлениями (GCM) на Android 3.1: когда мое приложение закрыто – широковещательный приемник, который должен обрабатывать push-сообщения GCM (Intents), никогда не вызывается.

В более низких версиях Android все работает отлично. Приемник широковещательной передачи всегда называется (даже когда приложение закрыто).

Я знаю, что с Android 3.1 появилась новая концепция: когда приложение не работает, оно находится в состоянии «остановлено»: http://developer.android.com/about/versions/android-3.1.html#launchcontrols

Поэтому, если вы хотите запустить «остановленное» приложение через Intent – вы должны добавить флаг FLAG_INCLUDE_STOPPED_PACKAGES в Intent.

Но проблема в том, что я не могу добавить флаг FLAG_INCLUDE_STOPPED_PACKAGES в намерение GCM, потому что GCM Intents (я имею в виду «com.google.android.c2dm.intent.RECEIVE» и «com.google.android.c2dm.intent.REGISTRATION») бросаются ОС.

Поэтому мой вопрос: как я могу обрабатывать push-сообщения (на android 3.1) из GCM через широковещательный приемник в ситуации, когда приложение (в котором зарегистрировано вещание) закрыто (находится в состоянии «остановлено»)?

Как я могу обрабатывать push-сообщения (на Android 3.1) из GCM через широковещательный приемник в ситуации, когда приложение (в котором зарегистрировано вещание) закрыто (находится в состоянии «остановлено»)?

Вы не можете. Если пользователь принудительно останавливает ваше приложение, ничто из вашего приложения не будет запускаться снова (на Android 3.1+), если оно не будет вызвано вручную, например, пользователь запускает одно из ваших действий. Ваша цель – предоставить пользователю никаких оснований для принудительного остановки вашего приложения.