android - Android 通知 - 收到错误的通知意图
问题描述
我有一个非常奇怪的通知情况(Android、Java)。
我创建了 3 个不同的通知(通过此代码):
int id = getWeekNotificationId(notification);// different id than 25
Intent notificationIntent = new Intent(context, ReminderNotifications.class);
...set intent data
PendingIntent pendingIntent =
PendingIntent.getBroadcast(
context, id, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
if (Build.VERSION.SDK_INT >= 19) {
alarm.setExact(AlarmManager.RTC_WAKEUP, 0, pendingIntent);
} else {
alarm.set(AlarmManager.RTC_WAKEUP, 0, pendingIntent);
}
然后我创建了 id 为 25 的通知(它是代码的不同部分):
public void scheduleNotification(int id, Context context) {
Intent notificationIntent = new Intent(context, NotificationPublisher.class);
...set intent data
PendingIntent pendingIntent =
PendingIntent.getBroadcast(
context, id, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, 0, pendingIntent);
}
然后我取消最后一个通知(id 25):
NotificationManagerCompat.from(context).cancel(25)
它没有正确显示在栏中。
这是我的问题:
- 单击这三个通知中的任何一个后,都会收到 id 为 25 的通知(意图数据对应于此通知)。¯\ (ツ) /¯
我错过了什么?正确的ID分配或其他什么?
解决方案
推荐阅读
- python - 如何防止 sympy 删除相同的值?
- amazon-web-services - aws s3api put-bucket-website - PutBucketWebsite 操作:拒绝访问
- python - 如何将 2 个字典作为元素放在一个字典中?
- json - Firebase 触发器格式
- php - 微软翻译文本停止工作 - PHP
- acumatica - 我加入 acumatica 的错误在哪里?
- java - 在Java中将二维数组转换为一维数组
- python - Python - 将工作表从多个工作簿复制到一个工作簿
- r - 计算和绘制 r 中核密度分布的差异
- python - 在 pandas 数据框列的一个列表中查找项目,但不在另一个列表中查找项目