10

我找到了很多答案,但没有帮助:(我有这个代码:

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;

我都使用了,但没有结果:(非常感谢你的回答。:)

4

5 回答 5

20

我认为,如果您不使用 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);

希望这可以帮助!

于 2013-04-16T08:37:36.027 回答
9

用户可以关闭所有通知,或者如果您将通知设置为自动取消,一旦用户选择它,它也会被删除。

您还可以为 NotificationManager 上的特定通知 ID 调用 cancel()。cancelAll() 方法调用会删除您之前发出的所有通知。

例子:

mNotificationManager.cancel(notifyId);
于 2013-04-16T08:26:59.050 回答
1

我一般用

mNotificationManager.cancleAll();
于 2018-04-16T12:52:29.873 回答
0

只需在按钮 onclick 事件中使用此行-

mNotificationManager.cancel(notifyId);//id is that u used for notification
于 2013-04-16T08:45:20.673 回答
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();

添加空的待处理意图,然后单击通知,通知将被删除。这个对我有用。

于 2017-03-11T14:10:29.077 回答