Cómo puedo recibir notificaciones de GCM cuando se detiene la aplicación

GCMIntentService (extends GCMBaseIntentService) no recibe notificaciones si la aplicación no se está ejecutando.

De: http://developer.android.com/about/versions/android-3.1.html

Iniciar controles en aplicaciones detenidas Tenga en cuenta que el sistema agrega FLAG_EXCLUDE_STOPPED_PACKAGES a todas las intenciones de difusión. Esto lo hace para evitar que las emisiones de los servicios de fondo inicien inadvertidamente o innecesariamente el lanzamiento de componentes de aplicaciones detenidas. Un servicio o una aplicación de fondo puede anular este comportamiento agregando el indicador FLAG_INCLUDE_STOPPED_PACKAGES a las intenciones de difusión que deberían permitir activar las aplicaciones detenidas.

¿Hay una manera de evitar este entorno? Gracias

GCMIntentService (extends GCMBaseIntentService) no recibe notificaciones si la aplicación no se está ejecutando.

Sí, lo hará. El resto de su pregunta, sin embargo, tiene poco que ver con si la aplicación se está ejecutando , sino más bien si ha sido ejecutada por el usuario antes. Lo que la palabra "detenido" significa en el párrafo que cita no es "no se está ejecutando", sino que representa un estado en el que se encuentra una aplicación:

  • Cuando se instala por primera vez, antes de que algo invoque manualmente un componente (por ejemplo, el usuario inicia una actividad)

  • Después de que la fuerza del usuario detenga la aplicación, hasta que algo invoque manualmente un componente (por ejemplo, el usuario inicia una actividad)

(Y realmente me gustaría que hubiera llegado con un adjetivo más distintivo de "parado" para esto …)

¿Hay una manera de evitar este entorno?

No. Si el usuario obliga a detener su aplicación, indica que no desea que su aplicación se ejecute de nuevo, por ningún motivo, hasta que vuelva a iniciarla manualmente. Su objetivo es no darle al usuario ninguna razón para detener la aplicación. Tenga en cuenta que no me refiero a "fuerza de parada" (es decir, presione el botón "Forzar Stop" de Configuración) – los administradores de tareas ordinarias, o pasar de la lista Tareas recientes en Android 4.x, no tiene este efecto.

Según Francesco Nerieri en este hilo de android-gcm :

Por lo tanto, si obliga a detener la aplicación, el comportamiento previsto para ICS es que la aplicación no reciba el mensaje. En JB esto significa que GCM también cancelará el registro de la aplicación, este es un comportamiento desafortunado y estamos trabajando para cambiar esto (la parte de cancelar el registro en JB).

  • ¿Cómo analizar enviar push sin registro de gcm?
  • GET_ACCOUNTS durante el uso de GCM - ¿Por qué es necesario?
  • Notificaciones Push de XMPP (Openfire)
  • ¿Es FCM (firebase cloud messaging) Token para un dispositivo o para una cuenta?
  • Error = TooManyMessages GCM
  • Uso de GCM en el estudio de Android
  • Cómo obtener RegistrationID usando GCM en android
  • Versión mínima de servicios de Google Play para la notificación de emisión
  • ¿Es necesaria una cuenta de Google para GCM (Google Cloud Messaging)?
  • ¿Es posible usar GCM para enviar notificaciones push entre diferentes aplicaciones?
  • ¿Cómo obtener una notificación interactiva push con Urban Airship en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.