请查看我的Pending Intent代码。
notificationIntent.putExtra("is_from_notification", true);
notificationIntent.putExtra("push_message_id", push_message_id);
notificationIntent.putExtra("open_target", open_target);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(context,notifyID, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification noti = new NotificationCompat.Builder(context)
.setSmallIcon(icon_small)
.setTicker(message)
.setLargeIcon(largeIcon)
.setWhen(System.currentTimeMillis())
.setContentTitle(title)
.setContentText(message)
.setContentIntent(contentIntent)
.setAutoCancel(true).build();
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(notifyID, noti);
我的问题在于,我应该在何处以及如何清除此未决意图。它在应用程序最近的任务中保持不变。
答案 0 :(得分:0)
只需调用notificationManager.cancel(notifyId);
或者
调用notificationManager.cancelAll();
希望,这有帮助。
答案 1 :(得分:-1)
清除pendingIntent使用:
修改强>
PendingIntent.getActivity(context,notifyID, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT).cancel();
将此行放在代码中的某处,您要取消pendingintent。
注意:意图必须与pendingIntent具有相同的名称和ID,在您的情况下:notifyID
和contentIntent
注意: PendingIntent本身只是对系统维护的令牌的引用,描述了用于检索它的原始数据。这意味着,即使其拥有的应用程序的进程被终止,PendingIntent本身也将保持可用于已经给出它的其他进程。如果创建应用程序稍后重新检索相同类型的PendingIntent(相同的操作,相同的Intent操作,数据,类别和组件以及相同的标志),它将接收表示同一令牌的PendingIntent,如果它仍然有效,并且可以因此调用 cancel()将其删除。
cancel() - 取消当前有效的PendingIntent。只有拥有PendingIntent的原始应用程序才能取消它。
应该帮助你