6

in una delle nostre applicazioni che utilizza GCM, abbiamo ricevuto segnalazioni che l'app smette di ricevere notifiche quando l'app è stata uccisa. Quando l'app viene riavviata, la notifica viene visualizzata normalmente.Ricezione di notifiche GCM Android quando l'applicazione è in stato di arresto

Dopo indagini, abbiamo scoperto che questo è a causa di questo cambiamento su Android 3.1:

Si noti che il sistema aggiunge FLAG_EXCLUDE_STOPPED_PACKAGES a tutti gli effetti di trasmissione. Lo fa per impedire alle trasmissioni dai servizi in background di avviare inavvertitamente o inutilmente componenti di applicazioni bloccate. Un servizio o un'applicazione in background può sovrascrivere questo comportamento aggiungendo il flag FLAG_INCLUDE_STOPPED_PACKAGES per trasmettere intenti che dovrebbero essere autorizzati ad attivare le applicazioni arrestate. (Android 3.1 changes)

ho ispezionato l'intento che viene licenziato da GCM quando è stato ricevuto una notifica, e ho notato che FLAG_EXCLUDE_STOPPED_PACKAGES è infatti impostato.

Ciò significa che tutti gli utenti che eseguono la nostra app su Android 3.1 e versioni successive smetteranno di ricevere notifiche dopo aver terminato la loro app, fino a quando non lo riavvieranno da soli. (Pre-Android 3.1 funziona bene).

Poiché l'intento è stato generato dal framework GCM stesso, non possiamo modificare i flag impostati su di esso, quindi stiamo cercando un'altra soluzione alternativa.

Tutte le idee sono apprezzate.

+0

Hai ragione. Ho pensato che uccidere un'app attraverso il menu delle impostazioni, o usare un task killer, o rimuoverla dalle attività recenti avesse tutte lo stesso effetto, ma non è così. Quindi questo non è affatto un problema. Grazie! – Mopper

+0

Hai trovato qualche soluzione, sto affrontando lo stesso problema – Nargis

risposta

-3

è necessario registrare il ricevitore di trasmissione gcm dal file menifista in modo che il destinatario riceverà una notifica anche se l'app è chiusa.

+0

ulteriori informazioni necessarie – LMK