我找到了很多答案,但没有人帮忙:( 我有这段代码:
private static void generateNotification(Context context, String message) {
int icon = R.drawable.icon;
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
int notifyID = 96;
NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder(context)
.setContentTitle("MyApp")
.setContentText(message)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setSmallIcon(icon);
Notification notification = mNotifyBuilder.build();
notification.flags |= Notification.FLAG_AUTO_CANCEL;
mNotificationManager.notify(notifyID, notification);
}
但是,如果我点击通知没有任何事情发生,它仍然存在。在文档中,我需要使用:
.setAutoCancel(true)
有些人有类似的问题,有人告诉他使用:
notification.flags |= Notification.FLAG_AUTO_CANCEL;
我使用两者,但没有结果:( 非常感谢您的回答。 :)
答案 0 :(得分:19)
我认为,如果你没有在你的通知中使用Intent,那么唯一的方法就是将其解除掉。
否则,您可以使用Intent打开您的活动,这实际上会清除通知:
Intent showIntent = new Intent(this, YourActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, showIntent, 0);
并将其添加到通知中:
NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder(context)
.setContentTitle("MyApp")
.setContentText(message)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setContentIntent(contentIntent)
.setSmallIcon(icon);
希望这有帮助!
答案 1 :(得分:9)
用户可以解除所有通知,或者如果您将通知设置为自动取消,则在用户选择通知后也会将其删除。
您还可以在NotificationManager上为特定通知ID调用cancel()。 cancelAll()方法调用将删除您之前发出的所有通知。
示例:
mNotificationManager.cancel(notifyId);
答案 2 :(得分:1)
我通常使用
mNotificationManager.cancleAll();
答案 3 :(得分:0)
只需使用此行内的按钮onclick事件 -
mNotificationManager.cancel(notifyId);//id is that u used for notification
答案 4 :(得分:0)
只需添加
Intent showIntent = new Intent();
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, showIntent, 0);
myNotification = new Notification.Builder(getApplicationContext())
.setContentTitle("Title")
.setContentText("Text")
.setTicker("notificatio")
.setContentIntent(contentIntent)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setSmallIcon(R.drawable.ic_launcher)
.build();
添加空待处理意图然后点击通知,通知将删除。它对我有用。