可以通过在PendingIntent中使用不同的requestCode来解决此问题。使用不同的requestCode将导致每次创建新的PendingIntent,从而确保获取唯一的Intent。
示例代码:
// 创建唯一的requestCode int requestCode = (int) System.currentTimeMillis();
// 创建意图 Intent intent = new Intent(context, MyBroadcastReceiver.class);
// 设置数据 intent.putExtra(EXTRA_MESSAGE, message);
// 创建PendingIntent PendingIntent pendingIntent = PendingIntent.getBroadcast(context, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
// 发送通知 NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.notification_icon) .setContentTitle(title) .setContentText(message) .setPriority(NotificationCompat.PRIORITY_HIGH) .setContentIntent(pendingIntent);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context); notificationManager.notify(notificationId, builder.build());