2014-12-31 3 views
0

GoogleCloudMessaging을 사용하는 GCM에 이상한 문제가 있습니다. 알림은 처음에는 작동하지만 시간이 지나면 작동을 멈 춥니 다 (약 1 시간 정도). 내가 GoogleCloudMessaging.getInstance(context).register(SENDER_ID);에 등록 할 때마다GCM 알림이 작동하지 않음 (GoogleCloudMessaging)

또 다른 것은, 내가 번들 엑스트라의 REGISTRATION_ID 포함 내 'WakefulBroadcastReceiver'의 onReceive()에서 전화를받을. 이것은 공통적 인 것이고 나는 이것을 단지 무시해야합니까?

여기에서 자습서를 수행했습니다. Implementing GCM client.

편집 : 문제는 푸시 알림을 처리하는 Localytics라는 라이브러리에서 발생했습니다. GCM 설정과 관련이 없습니다.

답변

0

편집 : 문제는 푸시 알림을 처리하는 Localytics라는 라이브러리에서 발생했습니다. GCM 설정과 관련이 없습니다.

2

모든 GCM 메시지의 만료 날짜가 만료되었거나 기기가 연결되지 않았으며 메시지가 실시간이 아닙니다.

GCM은 다음 단계로 메시지를 전달하는 방송 수신기를 사용 1. 온 클릭은()를 호출 gcm.send() 2 onReceive() 방송 수신기의 방법은 방법은 GCM 메시지를 처리 ​​3. 을 트리거

A WakefulBroadcastReceiver은 앱의 부분 웨이크 잠금을 생성하고 관리하는 특별한 유형의 브로드 캐스트 리시버입니다. 전환시 GCM 메시지를 서비스 (일반적으로 IntentService)로 처리하는 동안 전달되는 동안 기기가 다시 잠자기 상태가되지 않도록합니다. 작업을 서비스로 전환하는 동안 잠자기 잠금을 유지하지 않으면 작업이 완료되기 전에 잠자기 상태로 돌아갈 수 있습니다. 최종 결과는 향후 앱의 임의의 지점까지 GCM 메시지 처리가 완료되지 않을 수 있다는 것입니다. 이는 원하는 내용이 아닙니다.

그러나 WakefulBroadcastReceiver는이 아니며 이 아닙니다. 앱에 서비스가 필요하지 않으면 일반 BroadcastReceiver를 사용할 수 있습니다.

등록 후 의 GCM 문서에 따르면 앱에서 storeRegistrationId()를 호출하여 나중에 사용할 수 있도록 공유 환경 설정에 등록 ID를 저장합니다. 이는 regID를 지속하는 한 가지 방법 일뿐입니다. 따라서 registration_id는 데이터 지속성에 좋습니다.

관련 문제