您好,我希望通知的行为如下:
当我的应用程序没有任何通知时,应该创建一个通知,但是当托盘中已有通知时,我想更新通知的数据。
我可以获取当前通知或任何其他方式吗?
此外,我还有单一类型的 UI + 通知数据,该通知会在发生特定事件时频繁触发。
例如在应用程序每 5 分钟后获取有关比赛得分的消息的情况下,因此当前通知应根据收到的最后一条消息进行更新,因此不应为每个得分更新消息发送通知。
我的代码如下:
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra(Constants.SOME_DATA, someData);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.icon)
.setContentTitle(title)
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
如果您想永久运行单个通知并更新该通知,则必须使用 startForeground(NOTIFICATION_ID, notification); 创建前台通知
并且您可以使用相同的 NOTIFICATION_ID
来更新通知,其中您的情况是 0/* 通知 ID */或者如果您想要简单的通知,则可以使用相同的 NOTIFICATION_ID
更新您的通知,并将 FLAG_UPDATE_CURRENT
保留在您的待处理 Intent 中
我是一名优秀的程序员,十分优秀!