這似乎是一個已知問題,但是當我搜索每個人都在談論重複創建GCM註冊ID時。但是我沒有重複的IDS,但我仍然有一些重複的次數,它會是一次10,它不是恆定的。我無法理解爲什麼。GCM從服務器創建多循環多個通知
以下是我的代碼。
服務器端:
我在DB存儲Registarion IDS,每當ID爲perticular用戶改變我更新表的列。所以我沒有一個用戶的多個ID。
if(conn!=null)
{
PreparedStatement stmt = conn.prepareStatement("SELECT DISTINCT regid from userlogin1");
ResultSet rs = stmt.executeQuery();
while(rs.next())
{
list.add(rs.getString(1));
}
}
從這個我選擇不同的ID的
for(int i=0;i<list.size();i++)
{
String regId = list.get(i).toString();
System.out.println(regId);
String userMessage = request.getParameter("message");
Sender sender = new Sender(GOOGLE_SERVER_KEY);
Message message = new Message.Builder().collapseKey("Gcm").timeToLive(30)
.delayWhileIdle(false).addData(MESSAGE_KEY, userMessage).build();
result = sender.send(message, regId, 1);
request.setAttribute("pushStatus", result.toString());
}
通過這個我推的消息。
我的列表包含2個元素,因爲我在數據庫中有2個用戶。
當我檢查BrodcastReceiver時,它總是獲得多次調用。 由此我得到相同消息的重複通知。
我試過delayWhileIdle設置true仍然是一樣的。 請幫忙
您是否在兩臺設備上收到多個通知?你也可以嘗試發送到一個單一的設備,看看你是否得到同樣的問題? –