1

GCMを使用してサンプルPoCを実行しています。デバイスからgcmサーバーに登録リクエストを送信し、登録を成功させるための登録IDを取得しました。すべての登録IDをアプリサーバーデータベースに保存しました。アプリサーバーからすべての登録IDにデータをGCMに1回だけ送信しました。ただし、GcmBaseIntentServiceのOnMessage()メソッドが複数回呼び出されました。

データを送信しているときのappserverへのGCM応答は次のとおりです

{
    "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()メソッドでタスクを実行しています。この複数の呼び出しにより、複数のスレッドが作成されます。

この問題について私にアドバイスしてください。

4

1 に答える 1

0

サーバー側のコードに問題があります。ペイロードデータのデバイスリストに単一の登録IDが複数回追加されました。

于 2012-12-24T10:28:48.943 に答える