在我的Android应用程序中,我使用GCM通过XMPP-Protcol发送和接收上游和下游消息。 发送消息时,接收器在大多数情况下立即接收这些消息。但有时接收器会在几个小时后消失两次相同的消息。
我已经阅读了许多处理此问题的主题,但无法找到帮助我的解决方案。
我已经尝试过的事情:
我使用规范令牌进行注册和令牌刷新例程,如下面的实现所示:
//确保删除此设备的所有关联令牌
InstanceID.getInstance(getApplicationContext()).deleteInstanceID();
//获取新令牌
InstanceID instanceID = InstanceID.getInstance(ctxt);
String token = instanceID.getToken(senderId, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
//将令牌发送到后端
//在sharedPref中存储令牌
在思考处理注册和令牌刷新时,可能没有多个令牌属于一个设备,这意味着应该防止多个令牌对一个设备进行寻址或通过多个令牌发送消息。 不幸的是,有时会收到两次不同延迟的消息。
我在我的应用程序gradle代码中使用以下版本的依赖项:
compile 'com.google.android.gms:play-services-gcm:8.4.0'
有没有人遇到同样的问题?如何摆脱重复的邮件?如果您需要有关我的代码的更多信息来回答我的问题,请告诉我。