我每隔x分钟从服务器轮询以获取用户被邀请参加的事件。假设用户收到了一份新邀请并在上午10:00收到了通知。用户从未点击通知,我想防止用户在x分钟后再次收到相同信息的通知。基本上,我希望只允许唯一的通知显示一次并向用户发出警报。
您可能认为这行代码会按照我的期望完成工作,但它实际上没有。
notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE;
有人有什么想法吗?
我每隔x分钟从服务器轮询以获取用户被邀请参加的事件。假设用户收到了一份新邀请并在上午10:00收到了通知。用户从未点击通知,我想防止用户在x分钟后再次收到相同信息的通知。基本上,我希望只允许唯一的通知显示一次并向用户发出警报。
您可能认为这行代码会按照我的期望完成工作,但它实际上没有。
notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE;
有人有什么想法吗?
我不确定您的问题是看到了多个通知还是只有多个声音/振动。您需要做两件事:
Notification.FLAG_ONLY_ALERT_ONCE
或NotificationCompat.Builder#setOnlyAlertOnce()
,这将防止在更新通知时发出声音和振动。NotificationManager#notify(id, builder.build());
时,id
是一个一致的值,对于该特定事件始终保持相同。