2012-12-12 4 views
1

GCM을 사용하여 샘플 PoC를하고 있습니다. 장치에서 gcm 서버로 등록 요청을 보내고 성공적인 등록을 위해 등록 ID를 받았습니다. 나는 모든 등록 ID를 내 앱 서버 데이터베이스에 저장했다. 내 앱 서버에서 모든 등록 ID로 데이터를 GCM으로 한 번 보냈습니다. 그러나 GcmBaseIntentService의 OnMessage() 메서드는 여러 번 호출했습니다. 여기 GCMBaseIntentService 메소드의 OnMessage가 여러 번 호출 되었습니까?

내가이 때문에 배수로, 데이터

{ 
    "multicast_id": 5986417894970376000, 
    "success": 7, 
    "failure": 0, 
    "canonical_ids": 0, 
    "results": [ 
     { 
      "message_id": "0:1355230384617663%9fa953f8f9fd7ecd" 
     }, 
     { 
      "message_id": "0:1355230384617914%9fa953f8f9fd7ecd" 
     }, 
     { 
      "message_id": "0:1355230384617911%9fa953f8f9fd7ecd" 
     }, 
     { 
      "message_id": "0:1355230384617987%9fa953f8f9fd7ecd" 
     }, 
     { 
      "message_id": "0:1355230384617909%9fa953f8f9fd7ecd" 
     }, 
     { 
      "message_id": "0:1355230384617985%9fa953f8f9fd7ecd" 
     }, 
     { 
      "message_id": "0:1355230384618032%9fa953f8f9fd7ecd" 
     } 
    ] 
} 

내가 AsynTask를 사용하여 내의 onMessage() 메소드에서 작업을 복용 시간을하고있는 중이을 보내고 때 내 애플리케이션 서버에 GCM 응답입니다 다중 스레드가 만들어지고 호출합니다.

이 문제에 대해 조언 해주십시오.

+0

앱과 동일한 메시지가 수신 되었습니까? 마치 앱이 여러 번 등록한 것처럼 보입니다. GCM 서버에 무엇을 보내고 있습니까? – selsine

+0

예, 동일한 메시지가 수신 중입니다. 한 번만 등록하면됩니다. 내 appserver에서 머리글 및 등록 ID (지금은 ID가 하나만있는)와 일부 페이로드 데이터의 목록으로 API 키가있는 json 응답을 보내고 있습니다. – Lakshmanan

+0

하나의 registrationID 만 포함 하시겠습니까? GCM과 서버에서 앱 등록을 취소 한 다음 메시지를 다시 보내고 어떻게되는지 확인합니다. – selsine

답변

0

내 서버 측 코드에 문제가 있습니다. 내 페이로드 데이터의 장치 목록에 단일 등록 ID가 여러 번 추가되었습니다.

관련 문제