gpt4 book ai didi

Android GCM 消息重复

转载 作者:行者123 更新时间:2023-11-30 01:23:24 25 4
gpt4 key购买 nike

我正在开发聊天应用程序并尝试使用 Google 云消息传递按照本教程:

http://hmkcode.com/android-google-cloud-messaging-tutorial/

它工作正常,但通知发送了不止一次,即:如果我发送“你好”,将会有六个通知说“你好”!!最少为 2 个通知。

onHandleIntent 方法:

protected void onHandleIntent(Intent intent) {
Bundle extras = intent.getExtras();

GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);

String messageType = gcm.getMessageType(intent);

mes = extras.getString("content");

if(mes==null)
return;

db=new AppDatabase(this);

boolean isforeground = isForeground("packageName");

MessageData data = new MessageData();
data.setTitle(extras.getString("title"));
data.setContent(extras.getString("content"));

data.setSend_user_name(extras.getString("send_user_name"));


SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String currentDateandTime = sdf.format(new Date());

data.setDate(currentDateandTime);


if (isforeground) {

String activity_group_id = Integer
.toString(MessageActivity.group_id);

if (extras.getString("group_id").equals(activity_group_id)) {

MessageHandler.messageView.addMsg(data);
} else {
showToast(data);
}

} else {
showToast(data);
}

Log.i("GCM",
"Received : (" + messageType + ") "
+ extras.getString("title"));

GcmBroadcastReceiver.completeWakefulIntent(intent);

这里是isForeground方法的代码

public boolean isForeground(String myPackage) {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTaskInfo = manager
.getRunningTasks(1);
ComponentName componentInfo = runningTaskInfo.get(0).topActivity;

return componentInfo.getClassName().equals(myPackage);
}

最佳答案

请检查以下官方 GCM 线程,它定义了 Google 方面的一些错误。

https://groups.google.com/forum/#!topic/android-gcm/EHZUTEJMeyw

现在作为解决方案,您可以做的是连同来自服务器的 GCM 响应,传递一些随机的唯一 ID 并仅在 ID 是唯一的情况下处理 GCM 消息,因为此 ID 也将与 GCM 消息的 ID 重复是重复的。

关于Android GCM 消息重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36769072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com