No recibe mensajes de GCM en Android después de que la aplicación se aleje de tareas recientes

Estoy implementando GCM para notificaciones push usando GcmReceiver y GcmListenerService. Cuando la aplicación se está ejecutando en primer plano o en segundo plano, recibo las notificaciones correctamente.

Mi problema es cuando deslizo la aplicación de la lista de "tareas recientes", ya no puedo recibir mensajes de GCM (estoy en un Xiaomi Mi3). Entiendo que si obligas a cerrar una aplicación, ya no recibirás notificaciones push. Sin embargo, eliminarlo de las "tareas recientes" debería permitir que la aplicación reciba notificaciones push.

He probado esto con WeChat y Facebook Messenger, y sigo recibiendo notificaciones cuando elimino la aplicación (pero no si la fuerza cerrarla desde Configuración).

¿Qué estoy haciendo mal aquí?

Manifiesto:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.considerdigital.p1mobileapp" > <permission android:name="com.considerdigital.p1mobileapp.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.considerdigital.p1mobileapp.permission.C2D_MESSAGE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="com.google.android.c2dm.permission.SEND" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:name=".App" android:allowBackup="true" android:icon="@drawable/p1_app_icon" android:label="@string/app_name" android:theme="@style/Theme.P1mobileapp" > <receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.considerdigital.p1mobileapp" /> </intent-filter> </receiver> <service android:name=".ListenerService" android:exported="false" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> </intent-filter> </service> 

GcmListenerService:

 public class ListenerService extends GcmListenerService { private static final String TAG = "MyGcmListenerService"; public static final String FOREGROUND_NOTIFICATION = "FOREGROUND_NOTIFICATION"; private NotificationManager mNotificationManager; @Override public void onMessageReceived(String from, Bundle data) { // Send notification only if app is in background if (!P1GlobalVariables.getSharedInstance().isAppActive) { System.out.println("App is inactive"); sendNotification(data); } else { System.out.println("App is active"); sendForegroundNotification(data); } Log.i(TAG, "Received: " + data.toString()); } 

  • Algunas consultas sobre C2DM en Android
  • Cómo obtener ID de proyecto de google y pushwoosh id de aplicación?
  • Animación en la barra de notificaciones Vista personalizada
  • Android: abre o reinicia la aplicación después de hacer clic en la notificación push mediante las actividades de bandera
  • Programación de Android: GCMIntentService Stuck at WakeLock
  • ¿Hay alguna razón específica para utilizar Amazon SNS en lugar de servicio directo Baidu
  • No se puede resolver "com.google.android.gms.gcm.GcmReceiver"?
  • Rollback / cancelar la notificación de android-gcm
  • ¿Cuál es el límite de caracteres para el texto del mensaje en la notificación basada en la consola de Firebase?
  • La respuesta de GCM que viene es: Error = NotRegistered
  • Problema de registro del dispositivo Gcm en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.