这似乎是一个已知问题,但是当我搜索每个人都在谈论重复创建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仍然是一样的。 请帮忙
您是否在两台设备上收到多个通知?你也可以尝试发送到一个单一的设备,看看你是否得到同样的问题? –